Compare commits

...
4718 Commits
Author SHA1 Message Date
Sara Golemon 3f95989a32 Update versions for PHP 8.0.0alpha1 2020-06-23 15:42:19 +00:00
Sara Golemon d3ff398ea8 Update NEWS for PHP 8.0.0alpha1 2020-06-23 15:42:19 +00:00
Máté Kocsis f3b1f342c8 Deprecate the procedural API of ext/zip
Closes GH-5746
2020-06-23 17:39:29 +02:00
Dmitry Stogov da1c672424 Replace exceptional code by side exit to VM 2020-06-23 18:31:42 +03:00
Dmitry Stogov e2a8b3e120 Cleanup and better register usage 2020-06-23 17:51:02 +03:00
Dmitry Stogov 6ac16882d4 Reduce amount of "cold" code generated for FETCH_OBJ_* instructions 2020-06-23 17:16:44 +03:00
Alex Dowad 7a9f0cc3d0 Simplify _crypt_extended_init_r, and fix redundant initialization on Win32/Solaris
Looking at the history of this function, the original implementation had a bug where
it would return from the middle of the function without unlocking the mutex first.
The author attempted to fix this by incrementing the `initialized` flag atomically,
which is not necessary, since the section which modifies the flag is protected by a
mutex.

Coincidentally, at the same time that all this unnecessary 'atomic' machinery was
introduced, the code was also changed so that it didn't return without unlocking the
mutex. So it looks like the bug was fixed by accident.

It's not necessary to declare the flag as `volatile` either, since it is protected
by a mutex.

Further, the 'fixed' implementation was also wrong in another respect: on Windows
and Solaris, the `initialized` flag was not even declared as `static`!! So the
initialization of the static tables for S-boxes, P-boxes, etc. was repeated on
each call to `php_crypt`, completely defeating the purpose of this function.
2020-06-23 16:10:54 +02:00
Christoph M. Becker 9bd648ba1e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #55857: ftp_size on large files
2020-06-23 16:02:19 +02:00
Máté Kocsis b981662855 Fix a couple of UNKNOWN default values in ext/session
Closes GH-5752
2020-06-23 15:42:59 +02:00
Nikita Popov 35729b7604 Remove unnecessary initialization in phpdbg webhelper
This whole code is very dubious and should possibly be dropped. For
now just fix the build warning.
2020-06-23 14:29:24 +02:00
Nikita Popov 361aa1ea48 Enable dba on azure
Closes GH-5756.
2020-06-23 14:29:24 +02:00
Máté Kocsis 8d93ae1a23 Fix UNKNOWN default values in ext/readline
Closes GH-5755
2020-06-23 12:52:12 +02:00
Dmitry Stogov bdac60d2c0 Improve JIT for SEPARATE_ARRAY 2020-06-23 13:46:56 +03:00
Nikita Popov 5794fbf5f8 Fix missing initializers in dba inifile 2020-06-23 12:41:10 +02:00
Nikita Popov 40d162e423 Merge branch 'PHP-7.4'
* PHP-7.4:
  Restore XFAIL on fpm test
2020-06-23 12:36:04 +02:00
Nikita Popov f7a3cb4c39 Avoid convert_to_long_ex usage in readline 2020-06-23 12:35:51 +02:00
Nikita Popov 334b9059fa Update azure pipelins to ubuntu 20.04
Only updating the main job for now, to see how it goes.

Closes GH-5741.
2020-06-23 12:16:52 +02:00
Dmitry Stogov c973f19744 Improve spill code 2020-06-23 12:27:14 +03:00
Dmitry Stogov 5681eaf5e5 Avoid register spilling 2020-06-23 11:40:36 +03:00
Christoph M. Becker f7dacdbf58 Merge branch 'PHP-7.4'
* PHP-7.4:
  7.3 is now 7.3.21-dev
2020-06-23 10:34:44 +02:00
Derick Rethans 24007a1109 Merge branch 'PHP-7.4' 2020-06-23 08:46:54 +01:00
Christoph M. Becker dad377ba57 Fix test wrt. commit 1a2732f9a8 2020-06-22 18:55:16 +02:00
Derick Rethans 56ab608463 Consistent file naming. 2020-06-22 15:32:52 +01:00
George Peter Banyard 1a2732f9a8 Use ZPP callable check for preg_replace_callback() $callback argument 2020-06-22 15:56:36 +02:00
Nikita Popov 26171c3690 Also allow casting CurlMultiHandles 2020-06-22 15:09:22 +02:00
Dmitry Stogov ea2b0d3c8b Fixed JIT failures on Windows 2020-06-22 14:57:04 +03:00
Eddie Kohler efad1372a5 Correct implementation of joaat hash.
Before this commit, the result produced by a joaat hash depended
on how the input data was chunked. A hash produced by multiple
`hash_update` operations was incorrect. For example, this code,
which should produce three identical lines:

    var_dump(hash("joaat", "abcd"));

    $hash = hash_init("joaat");
    hash_update($hash, "ab");
    hash_update($hash, "cd");
    var_dump(hash_final($hash));

    $hash = hash_init("joaat");
    hash_update($hash, "abc");
    hash_update($hash, "d");
    var_dump(hash_final($hash));

instead produced:

    string(8) "cd8b6206"
    string(8) "e590d137"
    string(8) "2d59d087"

This is because the finalization step, involving shift operations
and adds, was applied on every chunk, rather than once at the end
as is required by the hash definition.

After this commit, the code above produces:

    string(8) "cd8b6206"
    string(8) "cd8b6206"
    string(8) "cd8b6206"

as expected.

Some tests encoded the wrong behavior and were corrected.

Closes GH-5749
2020-06-22 09:39:29 +02:00
Vladyslav Startsev 2c97b401c6 make bcpowmod stricter by not returning false, instead throw exception
Closes GH-5747
2020-06-22 09:31:55 +02:00
David Carlier ec80b781db Haiku opcache jit build update 2020-06-22 09:28:58 +03:00
Anatol Belski 56aebbec8b Merge branch 'PHP-7.4'
* PHP-7.4:
  SplHeap: Avoid memcpy on overlapping pointer
2020-06-21 22:55:00 +02:00
Michael Orlitzky 40cdc5f298 sapi/fpm/config.m4: add a new --with-fpm-apparmor configure flag.
The existing AC_FPM_APPARMOR macro (which is always run when FPM is
enabled) checks for the existence of libapparmor, and adds it to $LIBS
if found. The result is an "automagic" dependency on libapparmor that
depends not only on the user's configuration, but also on the build
host's environment.

In particular, this can cause problems if the user just happens to
have libapparmor installed (for testing or development) when he builds
PHP. Later, he may remove libapparmor, not realizing that PHP depends
on it. At that point, FPM will cease to work due to the missing library.

This commit adds a new configure flag called "--with-fpm-apparmor",
defaulting to "no", that enables or disables the feature. The new flag
is used to signal the user's intent; whether or not he wants to use
AppArmor. If he does, then we still check for the existence and
usability of libapparmor; however, it is now an error for the library
to be missing when --with-fpm-apparmor is requested.

Gentoo-bug: https://bugs.gentoo.org/637402
PHP-bug: https://bugs.php.net/bug.php?id=75519
2020-06-21 17:08:40 +01:00
Christoph M. Becker 6bc375f40a Mark failing tests as XFAIL for now
These test fail on Window since some recent changes to JIT; we mark
them as XFAIL until the issues are resolved.
2020-06-20 11:07:57 +02:00
Nikita Popov 1c4463c77a Allow casting CurlHandle to int
(int) $curlHandle will return spl_object_id($curlHandle). This
makes curl handle objects backwards compatible with code using
(int) $curlHandle to obtain a resource ID.

Closes GH-5743.
2020-06-19 23:05:47 +02:00
Alex Dowad 7e2147be23 Clean up some unused code (and fix some comments) in build scripts
- Fix typo in build/php.m4

- Nothing uses HAVE_INTTYPES_H; so remove check for header file

- Nothing defines ZEND_ACCONFIG_H_NO_C_PROTOS; so remove #ifndef

- `format_money` was removed in 2019, so <monetary.h> no longer needed

- Nothing uses HAVE_NETDB_H; so remove check for header file

- Nothing checks HAVE_TERMIOS_H; so remove check for header file

    (This was actually added when Wez Furlong was adding the original implementation of
    PTY support in `proc_open`, since replaced.)

- Nothing checks HAVE_SYS_AUXV_H; so remove check for header file

- PHP_BUILD_DATE variable is not used for anything, so remove it

    This variable was added to the Makefile, but from there, was not used for anything.
    The comments suggest it was intended to allow 'reproducible builds'. Presumably,
    this means that if a bug is found in a PHP binary somewhere, one could look at the
    Makefile which it was built from, see the date, and then could check the same
    code version out from source control. But... there can easily be multiple commits
    to the repo in the same day. Also, what makes us think that the Makefile which a
    binary was built from will be easily available?

    Besides, ext/standard/info.c already embeds the build date and time in each binary...
    but it does it using `__DATE__` and `__TIME__` (see `php_print_info`).

- Nothing checks HAVE_FINITE; so don't check for function

- Grammar fix to comment in build/php.m4

- Nothing sets $php_ldflags_add_usr_lib variable in configure, so remove conditional

    This was added in 2002, when Rasmus was having difficulty building PHP on some
    host and needed to have /usr/lib in the rpath. It was never documented and
    probably has never been used by anyone else.
2020-06-19 22:04:52 +02:00
Nikita Popov aa2e68cf6e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79570
2020-06-19 17:32:34 +02:00
David Carlier bb61346580 Fix Haiku build
getrusage supports only two fields. The network api sits in the network lib.

Closes GH-5732.
2020-06-19 17:21:55 +02:00
Nikita Popov ca48129cae Return void from php_jpeg_emit_message()
Instead of returning long and then casting to void.

This fixes a build warning on Ubuntu 20.04.

Closes GH-5742.
2020-06-19 16:59:29 +02:00
Dmitry Stogov b4b5734d80 JIT for FETCH_OBJ_W 2020-06-19 14:36:38 +03:00
Nikita Popov b461e6b074 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79710
2020-06-19 10:48:34 +02:00
Paul Dragoonis 5d7ff25311 Removing HTML Functionality from run-tests.php
As discussed on GH-5632, the HTML functionality does not appear
to be in active use. For HTML rendering of test results, it is
suggested to instead use the JUnit integration, in combination
with your favorite JUnit viewer.

Closes GH-5705.
2020-06-19 09:59:38 +02:00
Nikita Popov cd7d96610c Merge branch 'PHP-7.4' 2020-06-19 09:44:56 +02:00
Nikita Popov 5571765609 Forbid use of <?= as a semi-reserved identifier
One of the weirdest pieces of PHP code I've ever seen. In terms
of tokens, this gets internally translated to

    use x as y; echo as my_echo;

On master it crashes because this "echo" does not have attached
identifier metadata. Make sure it is added and then reject the
use of "<?=" as an identifier inside zend_lex_tstring.

Fixes oss-fuzz #23547.
2020-06-19 09:29:58 +02:00
Dmitry Stogov 6fa126e966 MAY_BE_INDIRECT inference 2020-06-18 18:54:32 +03:00
Nikita Popov 3a9a8df3fd Fix CLI test if linked against libedit
The error message changed here.
2020-06-18 17:30:03 +02:00
Nikita Popov 6b1e449ef4 Merge branch 'PHP-7.4' 2020-06-18 17:14:03 +02:00
Nikita Popov 607567b9cd Call zpp in enchant_broker_*_dict_path with libenchant-2
Even if the function is a dummy, we still need to call zpp to
comply with arginfo.
2020-06-18 17:10:22 +02:00
moliata 48e16a9dba Use ZEND_TOSTRING_FUNC_NAME
Closes GH-5736.
2020-06-18 17:06:19 +02:00
Nikita Popov ebc3043816 Merge branch 'PHP-7.4' 2020-06-18 17:02:24 +02:00
Sara Golemon 0ab8121c23 Add reference to phpweb/bin/createReleaseEntry 2020-06-18 14:04:01 +00:00
Nikita Popov 111f05610d Merge branch 'PHP-7.4' 2020-06-18 16:00:30 +02:00
Nikita Popov b5f5da4211 Merge branch 'PHP-7.4' 2020-06-18 15:56:14 +02:00
Nikita Popov 472352f5a7 Merge branch 'PHP-7.4' 2020-06-18 15:49:43 +02:00
Christoph M. Becker 3cc93c7de0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing NEWS entry
2020-06-18 15:29:50 +02:00
Nikita Popov c2a6395dcb Downgrade security level in tests using TLS < 1.2
A few additional tests have been added on master that require
lower security level.
2020-06-18 15:08:24 +02:00
Nikita Popov f3ff070034 Merge branch 'PHP-7.4' 2020-06-18 15:02:02 +02:00
Nikita Popov 4f0ae4ad6e Merge branch 'PHP-7.4' 2020-06-18 14:22:29 +02:00
Christoph M. Becker 5989b09d18 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix tests regarding OpenSSL security_level
2020-06-18 13:29:33 +02:00
Máté Kocsis ed6fbf9174 Fix UNKNOWN default values in ext/curl
Closes GH-5734
2020-06-18 13:26:32 +02:00
Máté Kocsis a43fd3bbef Remove the deprecated parameter of curl_version() 2020-06-18 13:26:32 +02:00
Nikita Popov 20664d6023 Merge branch 'PHP-7.4' 2020-06-18 10:49:56 +02:00
Nikita Popov 6cf5162480 Merge branch 'PHP-7.4' 2020-06-18 10:16:47 +02:00
Dmitry Stogov 8cbb0ffcb1 Use guards for ZEND_FETCH_OBJ_R/IS to eliminate repeatable checks 2020-06-18 11:10:47 +03:00
Nikita Popov e42cab2088 Merge branch 'PHP-7.4' 2020-06-18 10:09:58 +02:00
Christoph M. Becker 8014831a40 Update release-process.md wrt. new bin/createReleaseEntry 2020-06-18 09:27:54 +02:00
Dmitry Stogov 4050db614a Fixed multiple definition 2020-06-18 09:34:21 +03:00
Nikita Popov 9b70a831a2 Merge branch 'PHP-7.4' 2020-06-17 22:16:11 +02:00
Alex Dowad 3a19726bce Remove unneeded --disable-inline-optimization build parameter
In 1999, inline optimization was turned off by default. The commit log indicates this was
done because GCC was running out of memory on some hosts when building the Zend executor.
In 2003, inline optimization was re-enabled by default, but a build option was added to
turn it off if one runs out of memory when building.

Computing hardware has come a long way since 2003 and I doubt that anyone is running out
of memory when building PHP now.

Interestingly, this code set an unused variable called `INLINE_CFLAGS`. It actually
disabled inline optimization by adding -O0 to the build command, not using `INLINE_CFLAGS`.

Just to see how much memory GCC/Make are using when building PHP, I tried building with
successively higher values of `ulimit -v` until it succeeded. Interestingly, while most
of the codebase can be built with about 400MB of memory, ext/fileinfo/libmagic/apprentice.c
requires 1.2GB, doubtless because it includes ext/fileinfo/data_file.c, which is more
than 350,000 lines long. That is with GCC 7.5.0.

Most users get PHP as a binary package anyways, so the question is, are *packagers*
of PHP trying to build on machines with just 1GB RAM? And would they want to package
a PHP interpreter built with *no optimizations*? I can't imagine either being true.
2020-06-17 19:31:35 +02:00
Nikita Popov 4f260411d1 Merge branch 'PHP-7.4' 2020-06-17 17:14:05 +02:00
Máté Kocsis 314eedbc35 Convert resources to objects in ext/zlib
Closes GH-5680
2020-06-17 16:50:00 +02:00
Máté Kocsis 1efaed7cf7 Improve error messages of ext/zlib 2020-06-17 16:50:00 +02:00
Christoph M. Becker 3a0bdb720a Fix #63575: Root elements are not properly cloned
Cloning of root elements has to preserve that property, so they require
some special treatment.
2020-06-17 16:48:50 +02:00
moliata 45d1c38dab Use zend_is_constructor() 2020-06-17 16:46:17 +02:00
Christoph M. Becker 408961987f Fix typos 2020-06-17 16:45:12 +02:00
Nikita Popov 15846ff115 Add ZVAL_OBJ_COPY macro
For the common ZVAL_OBJ + GC_ADDREF pattern.
This mirrors the existing ZVAL_STR_COPY API.
2020-06-17 16:36:56 +02:00
Máté KocsisandNikita Popov b516566b84 Convert CURL resources to objects
Closes GH-5402

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2020-06-17 16:11:57 +02:00
Sara Golemon 1e095e3412 Update CREDITS 2020-06-17 13:04:01 +00:00
Dmitry Stogov 18347758d7 Improved JIT for SEPARATE_ARRAY 2020-06-17 14:45:25 +03:00
Dmitry Stogov 3830855a65 Tracing JIT support for PHP references in ASSIGN instruction 2020-06-17 12:24:51 +03:00
Nikita Popov 5aa649cf51 Merge branch 'PHP-7.4' 2020-06-17 09:35:19 +02:00
Dmitry Stogov 93aaf68088 cleanup 2020-06-17 10:32:53 +03:00
Christoph M. Becker 92c4b06513 Use ZEND_UNREACHABLE() instead of ZEND_ASSERT(0)
Instead of marking unreachable code with `ZEND_ASSERT(0)`, we introduce
`ZEND_UNREACHABLE()`, so that MSVC which does not consider `assert(0)`
to mark unreachable code does no longer trigger C4715[1] warnings in
debug builds.  This may be useful for other compilers as well.

[1] <https://docs.microsoft.com/de-de/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4715?view=vs-2019>
2020-06-16 18:39:09 +02:00
Dmitry Stogov 9ff3230c20 Merge exit points 2020-06-16 19:20:08 +03:00
Dmitry Stogov 626ccc45e4 Eliminate a dead check 2020-06-16 19:05:35 +03:00
Dmitry Stogov 8425214c1d Tracing JIT support for PHP references in array related instructions 2020-06-16 17:59:04 +03:00
Máté Kocsis 2e18b30d44 Convert resource to object in Sysvshm extension
Closes GH-5499
2020-06-16 16:36:11 +02:00
Christoph M. Becker aa754ba85e FR #79344: xmlwriter_write_attribute_ns: $prefix should be nullable
The `$prefix` parameter of `xmlwriter_write_element_ns()` and
`xmlwriter_start_element_ns()` is nullable, what allows these functions
to be used instead of their non NS variants.  Consequently, we make the
`$prefix` parameter of `xmlwriter_write_attribute_ns()` and
`xmlwriter_start_attribute_ns()` nullable as well.
2020-06-16 15:50:01 +02:00
Nikita Popov 2c207ebe6b Remove debug code from usleep()
This was added to debug CI failures, but ultimately didn't help
understand the macos timing issues. Drop it now so it's not
forgotten...
2020-06-16 14:51:58 +02:00
Nikita Popov bbe74a6e3a Merge branch 'PHP-7.4' 2020-06-16 14:32:33 +02:00
Dmitry Stogov 77d0587fdb Use "lea" to add/sub register with constant 2020-06-16 14:04:05 +03:00
Dmitry Stogov a459799910 Improved JIT for ZVAL_COPY_DEREF 2020-06-16 13:24:28 +03:00
Nikita Popov c260613c6f Optimize parallel test runner startup
Don't connect to each worker individually: First spawn all processes
and then establish connections in any order.

This avoids a ~1s wait when running on many cores.
2020-06-16 11:39:03 +02:00
David Carlier 15b2cc7c28 Implements an openpty wrapper for solaris based systems
This is only used by proc_open pty support, and as such declared
directly there.
2020-06-16 11:19:00 +02:00
David Carlier 727ae51a0c Fix JIT build on solaris/illumos
thr_self to detect the proper thread identifier but all
related typedef'd types conflict with the vtune part.
2020-06-16 11:18:50 +02:00
Nikita Popov 8b822afb0c Fix printf type 2020-06-16 10:57:29 +02:00
Jens de Nies 01be55fc00 Made sure zpp is always called and refactored some existing zpp calls.
Closes GH-5714
2020-06-16 10:45:14 +02:00
Jens de Nies 58a65c4b96 Fixed some oci8 tests.
Closes GH-5716
2020-06-16 10:38:06 +02:00
Dmitry Stogov bdd8406372 Added JIT debug flag to dump the size of generated code (opcache.jit_debug=0x200) 2020-06-16 11:27:34 +03:00
Fabien Villepinte 293a0e797c Fix typo 2020-06-15 21:32:01 +02:00
Dmitry Stogov f04f7c3995 Added note 2020-06-15 17:21:32 +03:00
Dmitry Stogov a92022f878 Fixed JIT 2020-06-15 15:35:02 +03:00
Dmitry Stogov bb3d4456ee Change GC_COLLECTABLE flag into GC_NOT_COLLECTABLE to simplify GC_MAY_LEAK() check 2020-06-15 14:26:22 +03:00
Dmitry Stogov 18f2ef094a FETCH_FIM_R/IS JIT improvement 2020-06-15 12:15:56 +03:00
Nikita Popov 9b4601a65c Fix typo in file cache job 2020-06-15 10:13:04 +02:00
Christoph M. Becker 63cb47a86b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79687: Sony picture - PHP Warning - Make, Model, MakerNotes
2020-06-13 18:33:17 +02:00
Máté Kocsis 793823655e Fix ZPP of OCI_Lob::free 2020-06-13 10:53:49 +02:00
Nikita Popov cb0fa99174 Merge branch 'PHP-7.4' 2020-06-12 15:41:39 +02:00
Nikita Popov 50c87e92fc Use GC stack in nested data removal
We should be doing this anyway to prevent stack overflow, but on
master this is important for an additional reason: The temporary
GC buffer provided for get_gc handlers may get reused if the scan
is performed recursively instead of indirected via the GC stack.

This fixes oss-fuzz #23350.
2020-06-12 15:02:12 +02:00
Christoph M. Becker b7a55aaff2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79676: imagescale adds black border with IMG_BICUBIC
2020-06-12 14:09:16 +02:00
Nikita Popov 4f9a1122e1 Avoid out of range float to int cast in exif
Use convert_any_int instead of convert_any_format to directly get
an integer.

Also adjust SRATIONAL handling to not go through a double division.
This was introduced to avoid SIGFPE for the INT_MIN / -1 case,
but we can just handle that explicitly.
2020-06-12 12:54:41 +02:00
Nikita Popov bf4f3ddb2f Merge branch 'PHP-7.4' 2020-06-12 12:35:57 +02:00
Nikita Popov 2ba10ad0c5 Revert accidental change
Not sure how this happened, but I seem to have reverted
2fd278bc21
as part of
1386850838.

Restore the change.
2020-06-12 11:34:01 +02:00
Nikita Popov c7ad8a8738 Initialize indentation_uses_spaces field
This avoids reading a trap representation from _Bool,
but shouldn't matter as far as behavior is concerned.
2020-06-12 11:23:48 +02:00
Nikita Popov 88021ffe0e Fix count_commas implementation
Ooops, I did not account for the changing length here.
2020-06-12 11:04:35 +02:00
Nikita Popov f68a64a8a8 Fix null pointer UB in add_assoc_image_info()
And clean up this function a bit by reducing indentation and
variable scope.
2020-06-12 10:56:54 +02:00
Nikita Popov 4a7ec516e0 Move label to correct position 2020-06-12 10:44:37 +02:00
Nikita Popov 0949214ab3 Fix null pointer UB in GC
This is just plain stupid: In C, it is not permitted to add zero
to a null pointer. In C++, it is permitted.
2020-06-12 10:33:39 +02:00
Nikita Popov ece375052b Fix float conversion warning
We are okay with the loss of precision here...
2020-06-12 10:20:10 +02:00
Nikita Popov 1386850838 Use unused attribute for _dummy
The (void)_dummy is apparently considered a read of an uninitialized
variable. As it is a _Bool now, which has trap representations, this
is no longer considered legal and results in somewhat odd ubsan
warnings of the form:

runtime error: load of value 0, which is not a valid value for type 'zend_bool' (aka 'bool')
2020-06-12 10:18:19 +02:00
Nikita Popov f691693ebc Fix null pointer ub in encoding parsing
And do a bit of drive-by cleanup by extracting count_commas and
reducing some variable scopes.
2020-06-12 10:08:34 +02:00
Nikita Popov ccf3e01216 Update fuzzer readme
Drop --enable-json flag and make it more obvious that clang needs
to be used.
2020-06-12 10:08:34 +02:00
Anatol Belski a5e9950c7a Merge branch 'PHP-7.4'
* PHP-7.4:
  sqlite3: Fix possible use after free
2020-06-11 13:23:35 +02:00
Dmitry Stogov 217f6e16d6 Use cheaper variant of zend_hash_index_find() 2020-06-11 01:34:55 +03:00
Christoph M. Becker 08858e7cca Fix #73529: session_decode() silently fails on wrong input
The `php_serialize` decode function has to return `FAILURE`, if the
unserialization failed on anything but an empty string.

The `php` decode function has also to return `FAILURE`, if there is
trailing garbage in the string.
2020-06-10 16:48:49 +02:00
Christoph M. Becker 85f5d15c18 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS wrt. bug 79681
2020-06-10 16:45:08 +02:00
Christoph M. Becker 0eaecb9c87 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79681: mime_content_type/finfo returning incorrect mimetype
2020-06-10 16:40:39 +02:00
Nikita Popov 1c74bab8e6 More efficient check for valid class name
Use a bitset of valid characters instead of strspn. This is both
more efficient and more compact.
2020-06-10 14:50:35 +02:00
Nikita Popov bda099a3c4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Explicitly start postgres on azure
2020-06-10 14:10:18 +02:00
Christoph M. Becker 38bca539a1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Also support absolute Windows filenames
2020-06-10 12:12:47 +02:00
Nikita Popov 94df2f697f Fix bug #65006
The "callable name" may be the same for multiple distinct callables.
The code already worked around this for the case of instance methods,
but there are other cases in which callable names clash, such as
the use of self:: reported in the referenced bug.

Rather than trying to generate a unique name for callables, compare
the content of the alfi structures. This is less efficient if there
are many autoload functions, but autoload *registration* does not
need to be particularly efficient.

As a side-effect, this no longer permits unregistering non-callables.
2020-06-10 11:30:32 +02:00
Nikita Popov 034741f6c7 Simplify spl_autoload_perform() implementation
And convert alfi.obj from zval to zend_object*.
2020-06-10 10:33:54 +02:00
Nikita Popov c23edd2acf Remove called_scope inheritance in zend_call_method()
Similar to 097043db2a, but for the
zend_call_method() API. I don't think we ever use this for
static methods, but this logic shouldn't be there. If you want
to inherit the active LSB scope for some reason, do so explicitly.
2020-06-10 10:04:37 +02:00
Nikita Popov 097043db2a Fix called scope assignment in autoloader
We should use the scope specified in the spl_autoload_register()
call, not whatever LSB scope just so happens to be active at the
time of the autoloader call.
2020-06-10 09:55:50 +02:00
Nikita Popov e0e4a61847 Remove autoload_running flag
This was only used to decide between a hash clean and a hash
destroyed in spl_autoload_remove(). But now that
spl_autoload_functions() no longer distinguishes between NULL and
an empty array here, there's really no need to try and destroy
the hashtable here.
2020-06-10 09:41:58 +02:00
Nikita Popov 5b59d4915c Cleanup SPL autoload implementation
Replace EG(autoload_func) with a C level zend_autoload hook.
This avoids having to do one indirection through PHP function
calls. The need for EG(autoload_func) was a leftover from the
__autoload() implementation.

Additionally, drop special-casing of spl_autoload(), and instead
register it just like any other autoloading function. This fixes
bug #71236 as a side-effect.

Finally, change spl_autoload_functions() to always return an array.
The distinction between false and an empty array no longer makes
sense here.

Closes GH-5696.
2020-06-10 09:38:47 +02:00
Christoph M. Becker 68dd6cc92b Control VCRT leak reporting via environment variable in debug builds
Formerly, this had to be enabled by passing the configuration flag
`--enable-crt-debug`; now it can be enabled by setting the environment
variable `PHP_WIN32_DEBUG_HEAP`.  The advantage is that it is no longer
necessary to do separate builds, at the cost of a very minor
performance penalty during process startup.
2020-06-10 09:05:17 +02:00
Dmitry Stogov c1887974cc Setup RETURN counters for nested frames 2020-06-10 08:10:27 +03:00
Xinchen Hui 28b4761ecb Merge branch 'PHP-7.4'
* PHP-7.4:
  Partial fixed bug #79649 (Altering disable_functions from module init corrupts memory)
2020-06-10 11:21:13 +08:00
Dmitry Stogov a60cdcf084 A helper to trace executed source lines 2020-06-10 00:13:39 +03:00
Dmitry Stogov e9f295ac84 Tracing JIT support for megamorphic calls 2020-06-09 23:33:22 +03:00
Christoph M. Becker 4edce91fae Avoid unnecessary linking of Windows DLLs
For snapshot builds (`--enable-snapshot-build`), after the build has
been completely finished, running `nmake` causes a lot of DLLs to be
rebuilt.  The problem is that the build folders OptimizerObj and
opcache_jit are dependencies of the main PHP DLL, but these folders do
not exists in the source tree, so nmake assumes it has to re-link the
main PHP DLL, and that makes several other DLLs stale.

We solve that by mirroring the folder structure of the respective
source folders.
2020-06-09 18:37:37 +02:00
Javier Eguiluz 066a378316 [ci skip] Fixed some minor typos in code comments 2020-06-09 17:17:55 +02:00
Christoph M. Becker 34ede22fd8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix possibly unsupported timercmp() usage
2020-06-09 16:56:35 +02:00
Christoph M. Becker 4b76a2ddb3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #62890: default_socket_timeout=-1 causes connection to timeout
2020-06-09 16:48:41 +02:00
Nikita Popov 3b8d26accf Remove obsolete __lambda_func handling
This is a leftover from create_function() support.
2020-06-09 16:47:40 +02:00
Christoph M. Becker beddb97b4c Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update NEWS
2020-06-09 16:40:56 +02:00
Nikita Popov e56e53a59d Back up fake_scope in zend_call_function
We regularly find new places where we forgot to reset fake_scope.
Instead of having to handle this for each caller of zend_call_function()
and similar APIs, handle it directly in zend_call_function().
2020-06-09 16:33:33 +02:00
Nikita Popov 257dbb0450 Add zend_call_known_function() API family
This adds the following APIs:

void zend_call_known_function(
    zend_function *fn, zend_object *object, zend_class_entry *called_scope,
    zval *retval_ptr, int param_count, zval *params);

void zend_call_known_instance_method(
    zend_function *fn, zend_object *object, zval *retval_ptr, int param_count, zval *params);
void zend_call_known_instance_method_with_0_params(
    zend_function *fn, zend_object *object, zval *retval_ptr);
void zend_call_known_instance_method_with_1_params(
    zend_function *fn, zend_object *object, zval *retval_ptr, zval *param);
void zend_call_known_instance_method_with_2_params(
    zend_function *fn, zend_object *object, zval *retval_ptr, zval *param1, zval *param2);

These are used to perform a call if you already have the
zend_function you want to call. zend_call_known_function()
is the base API, the rest are just really thin wrappers around
it for the common case of instance method calls.

Closes GH-5692.
2020-06-09 16:21:54 +02:00
Nikita Popov bcada03f48 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79683
2020-06-09 15:52:48 +02:00
Dmitry Stogov 797c1c5088 Tracing JIT support for real dynamic calls 2020-06-09 14:02:02 +03:00
George Peter Banyard 4b77a158ef Use standard boolean type as zend_bool typedef
Closes GH-5624
2020-06-09 11:43:45 +02:00
George Peter Banyard c14371ef7b Fix incorrect zend_bool usage for display_errors 2020-06-09 11:43:37 +02:00
George Peter Banyard 9fbc31704d Fix incorrect usage of zend_bool in Zend globals 2020-06-09 11:43:37 +02:00
Nikita Popov be540b35d2 Remove some special-casing in zend_call_method()
Don't treat the !fn_proxy && !obj_ce case differently. There doesn't
seem to be any need for it, and it will result in subtly different
behavior (e.g. it will accept "Foo::bar" syntax, but break as soon
as you pass in an fn_proxy cache).
2020-06-09 10:10:58 +02:00
Máté Kocsis 596561009c Fix some UNKNOWN default values
In ext/ffi, ext/intl, ext/mysqli, and ext/pcntl
2020-06-09 09:46:51 +02:00
Christoph M. Becker cadcefc956 Fix new test case for master 2020-06-09 08:50:09 +02:00
Peter Kokot fe2afef36f Fix #78750: configure assumes yacc and re2c work
Closes GH-5681
2020-06-09 00:46:12 +02:00
Ilija Tovilo 2a3ac4a8e7 Add missing terminators in zend_language_parser.y
Closes GH-5688
2020-06-09 00:44:13 +02:00
twosee 05ed7bff17 Make zend_argument_error_variadic static
Closes GH-5687
2020-06-09 00:42:48 +02:00
Christoph M. Becker 383a9f46ad Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #74267: segfault with streams and invalid data
2020-06-08 23:28:36 +02:00
twosee 83a77015ad Add helper APIs for maybe-interned string creation
Add ZVAL_CHAR/RETVAL_CHAR/RETURN_CHAR as a shortcut for using
ZVAL_INTERNED_STRING and ZSTR_CHAR.

Add zend_string_init_fast() as a helper for the empty string /
one char interned string / zend_string_init() pattern.

Also add corresponding ZVAL_STRINGL_FAST etc macros.

Closes GH-5684.
2020-06-08 15:31:52 +02:00
Tyson Andre 543684e796 Optimize out no-op yield from statements
If the array is empty, then I'd expect that the generator is never left,
and that can be converted to a no-op and the return value would always be `null`.

Make `yield from [];` as efficient as `if (false) { yield null; }`
when opcache's sccp pass is enabled.

Closes GH-5679
2020-06-08 09:17:13 -04:00
Nikita Popov 3d4f79d678 Don't allow variables as attribute name
Attributes require a static class name...

This fixes https://oss-fuzz.com/testcase-detail/6267052359942144.
2020-06-08 14:34:43 +02:00
Nikita Popov b03cafd19c Fix bug #77966: Cannot alias a method named "namespace"
This is a bit tricky: In this cases we have "namespace as", which
means that we will only recognize "namespace" as an identifier when
the lookahead token is already at the "as". This means that
zend_lex_tstring picks up the wrong identifier.

We solve this by actually assigning the identifier as the semantic
value on the parser stack -- as in almost all cases we will not
actually need the identifier, this is just an (offset, size)
reference, not a copy of the string.

Additionally, we need to teach the lexer feedback mechanism used
by tokenizer TOKEN_PARSE mode to apply feedback to something
other than the very last token. To that purpose we pass through
the token text and check the tokens in reverse order to find the
right one.

Closes GH-5668.
2020-06-08 12:55:14 +02:00
Phil Davis 08518b18b2 Fix typo of IteratorAggregateImpl
Closes GH-5682.
2020-06-08 12:28:15 +02:00
Nikita Popov 57f408e87c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79657
2020-06-08 11:32:24 +02:00
Dmitry Stogov 13909e5555 Fixed incorrect zend_bool type usage 2020-06-08 12:18:05 +03:00
twosee 88355dd338 Constify char * arguments of APIs
Closes GH-5676.
2020-06-08 10:38:45 +02:00
Nikita Popov f6db43fec8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable mysqlnd compression on msan build
2020-06-08 10:36:01 +02:00
Nikita Popov 57e17e58a5 Fix leak in openssl_cms_read() 2020-06-08 10:13:25 +02:00
Remi Collet cd3f42f17e [skip ci] typo 2020-06-08 08:02:48 +02:00
Jens de Nies 45475c2e21 Deprecate function aliases in oci8 extension.
Closes GH-5589
2020-06-08 00:23:38 +02:00
Jakub Zelenka 367c55ff1d Update NEWS and UPGRADING for the OpenSSL ext CMS addition 2020-06-07 21:11:09 +01:00
Eliot Lear 8583b8a9bf Add support for Cryptographic Message Syntax (CMS)
It add CMS (RFC 5652) support, which is an update to PKCS7.  The functions
are analogous BUT NOT IDENTICAL to openssl_pkcs7*.  In particular, support for
different encodings (PEM, DER, SMIME) is now available.
2020-06-07 16:58:34 +01:00
Gabriel Caruso 7439941d55 Add $filter parameter for ReflectionClass::(getConstants|getReflectionConstants)
This solves [#79628](https://bugs.php.net/79628).

Similar to `ReflectionClass::getMethods()` and `ReflectionClass::getProperties()`,
this new `$filter` argument allows the filtering of constants defined in a class by
their visibility.

For that, we create three new constants for `ReflectionClassConstant`:

  * `IS_PUBLIC`
  * `IS_PROTECTED`
  * `IS_PRIVATE`

Closes GH-5649.
2020-06-07 15:57:48 +02:00
Gabriel Caruso 84492f5b50 Fix tests' description for ReflectionClass::getConstant 2020-06-07 15:46:39 +02:00
twosee 7d6a0ba808 Fix expression warnings and break warnings
Close GH-5675.
2020-06-07 10:41:11 +02:00
Nikita Popov 1d8233877c Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow defining of uname value for reproducible builds
2020-06-07 10:38:50 +02:00
twosee 6260bc218f Remove duplicate zend_try
Closes GH-5672.
2020-06-07 10:37:14 +02:00
twosee 1b85e749c7 Fix warning of strict-prototypes
Closes GH-5673.
2020-06-07 10:36:50 +02:00
Nikita Popov 68fdad82c9 Fix free of uninitialized memory in attributes
Fixes OSS-Fuzz #23140.
2020-06-07 10:27:15 +02:00
Remi Collet 06ff0e8721 move comment 2020-06-07 08:16:50 +02:00
Remi Collet a3bfd4a108 Fixed bug #79678 Build fails due to undeclared ZIP_RDONLY 2020-06-07 07:53:26 +02:00
George Peter Banyard 706d4f3559 Fix invalid usage of zend_bool in DOM extension 2020-06-06 17:19:00 +02:00
twosee cb2275866d Fix BC break of zend_throw_exception
This also fixes a SegFault

Closes GH-5670
2020-06-06 17:17:44 +02:00
Máté Kocsis aa9b0ccda8 Add tests to check mismatching function signatures
Closes GH-5666
2020-06-06 09:23:34 +02:00
Nicolas Frandeboeuf 170d63ec62 openssl: Fix openssl_pkcs12_export_to_file extracerts test
Same as https://github.com/php/php-src/pull/2681/files but for openssl_pkcs12_export_to_file

Closes GH-5665
2020-06-05 22:28:01 +02:00
George Peter Banyard 4c6ecc820b Refactor IntlBreakIterator::next() handling 2020-06-05 22:16:33 +02:00
George Peter Banyard 7af0466044 Convert code path which should never happen to assertion 2020-06-05 22:11:06 +02:00
Remi Collet eae3bda9e3 encode param is optional 2020-06-05 17:10:12 +02:00
Nikita Popov 8d2c7efbc0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unnecessary "poo" rmdirs
2020-06-05 16:27:09 +02:00
Remi Collet a838cb5e11 bump zip version 2020-06-05 16:23:43 +02:00
Nikita Popov 064b464448 Implement "Constructor Promotion" RFC
RFC: https://wiki.php.net/rfc/constructor_promotion

Closes GH-5291.
2020-06-05 15:15:51 +02:00
Dmitry Stogov 91f283a0bf micro-optimization 2020-06-05 14:20:39 +03:00
Christoph M. Becker 3a031e0b03 Drop hard-coded /W3 default in favor of custom CFLAGS
Building with `/W3` shows an awful lot of warnings on Windows, so it's
really hard to spot the more important ones.  Since it is not possible
to override the hard-coded `/W3`, we drop it altogether, so MSVC uses
the default `/W1`.  Users are encouraged to increase the warning level
via the environment variable `CFLAGS` before doing configure.

We also enable `/WX` (treat warnings as errors) for AppVeyor CI, using
`/W1` for now, since otherwise the build would fail.
2020-06-05 11:17:06 +02:00
Christoph M. Becker 5a04796f76 Fix MSVC level 1 (severe) warnings
We fix (hopefully) all instances of:

* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4005>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4024>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4028>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4047>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4087>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4090>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4273>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4312>

`zend_llist_add_element()` and `zend_llist_prepend_element()` now
explicitly expect a *const* pointer.

We use the macro `ZEND_VOIDP()` instead of a `(void*)` cast to suppress
C4090; this should prevent accidential removal of the cast by
clarifying the intention, and makes it easier to remove the casts if
the issue[1] will be resolved sometime.

[1] <https://developercommunity.visualstudio.com/content/problem/390711/c-compiler-incorrect-propagation-of-const-qualifie.html>
2020-06-05 11:17:05 +02:00
Nikita Popov 536c02b003 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update intl test suite for ICU 67.1
2020-06-05 10:52:07 +02:00
Nikita Popov 5b4c4bbe3b Free attribute validators on shutdown 2020-06-05 10:36:35 +02:00
Nikita Popov d3eeeb6882 Don't leak attributes on internal classes
Also add zend_hash_release() API to complement zend_array_release(),
because the latter is specific to non-persistent zval arrays.
2020-06-05 10:29:49 +02:00
Nikita Popov 8a7756c1b7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Respect --program-prefix/suffix when installing phar
2020-06-05 10:10:52 +02:00
Nikita Popov 975acfe71e Pass zend_string message to zend_error_cb
This makes the zend_error_cb API simpler, and avoid formatting
the same message in multiple places.

It should be noted that the passed zend_string is always
non-persistent, so if you want to store it persistently somewhere,
you may still need to duplicate it.

The last_error_message is cleared a bit more aggressive, to make
sure it doesn't hang around across allocator life-cycles.

Closes GH-5639.
2020-06-05 09:54:02 +02:00
Nikita Popov e949f306be Fixed bug #72089: Throw Error on require failure
It should be noted that we still throw the usual fopen warnings,
but the final fatal error becomes an Error exception. Combine
with @ to suppress FS warnings.

Closes GH-5641.
2020-06-05 09:46:39 +02:00
Christoph M. Becker 4ce47709c7 Fix phpdbg watchpoints wrt. negative_array_index RFC
The implementation of that RFC changed the initial value of
`zend_array.nNextFreeElement` to `-1`; we work around that by inserting
first, and retrieving the index afterwards.

We also fix the erroneous printf specifier for the unsigned integer.
2020-06-05 09:06:29 +02:00
Dmitry Stogov bc37fc57e5 Avoid useless "mov" 2020-06-05 00:05:12 +03:00
George Peter Banyard 97757e759d Fix weird zend_bool usage in Intl Calendar::roll() method
This code really needs to be review as it's convoluted for no good reason.
2020-06-04 22:56:10 +02:00
Matthias Dötsch 957a0f6a69 in_array() avoid internal property access as we have the arrlen already
Closes GH-5662
2020-06-04 22:55:06 +02:00
Benjamin Eberlei 1622d22c62 Add upgrading note for Attributes RFC
[ci-skip]
2020-06-04 18:21:18 +02:00
Benjamin EberleiandMartin Schröder a7908c2d11 Add Attributes
Co-authored-by: Martin Schröder <m.schroeder2007@gmail.com>
2020-06-04 18:19:49 +02:00
Christoph M. Becker 970ac28e27 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #73527: Invalid memory access in php_filter_strip
2020-06-04 13:40:16 +02:00
Dmitry Stogov 58801f7142 Add guard for FETCH_DIM_FUNC_ARG 2020-06-04 14:04:21 +03:00
Dmitry Stogov 8047c1d05c Prefer shorter x86 instructions 2020-06-04 13:19:42 +03:00
Christoph M. Becker 864fb0ec23 Implement #47074: phpinfo() reports "On" as 1 for the some extensions
What is modified as boolean, should also be displayed as boolean.
2020-06-04 11:25:45 +02:00
Dmitry Stogov efde51e197 Improved tracing JIT for FETCH_OBJ_R/IS 2020-06-04 12:23:27 +03:00
Nikita Popov 4984bd100b Remove MYSQLND_COMPRESSION_WANTED define
Instead directly define MYSQLND_COMPRESSION_ENABLED. This also
matches what config.w32 does.
2020-06-04 10:03:39 +02:00
Nikita Popov fc458eee3b Merge branch 'PHP-7.4'
* PHP-7.4:
  mysqlnd: Remove unnecessary check for HAVE_ZLIB
2020-06-04 10:02:12 +02:00
Christoph M. Becker c773dd81c6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79668: get_defined_functions(true) may miss functions
2020-06-04 09:11:13 +02:00
Dmitry Stogov 2745053799 Tracing JIT for FETCH_DIM_FUNC_ARG and FETCH_OBJ_FUNC_ARG when they are used in READ mode (to pass by value). 2020-06-04 10:03:15 +03:00
Dmitry Stogov c59edf0ad5 Fixed abstract stack consistency for JMPZ_EX/JMPNZ_EX 2020-06-04 00:17:13 +03:00
Dmitry Stogov 3fae143318 "call_info" doesn't matter 2020-06-03 22:50:40 +03:00
Dmitry Stogov 0badfc0880 Avoid useless register reload 2020-06-03 18:14:51 +03:00
Nikita Popov 698bd59fb5 Fix typo in skipif section
Merge mistake...
2020-06-03 14:50:35 +02:00
Dmitry Stogov 3587fc5418 Avoid useless REFCOUNTED check 2020-06-03 12:11:39 +03:00
Christoph M. Becker d23cd354c0 Fix #79665: ini_get() and opcache_get_configuration() inconsistency
Overriding the given INI values in modifier callbacks is not possible,
so instead of enforcing "normalized" internal values, we just reject
the attempted changes.
2020-06-03 11:07:25 +02:00
Dmitry Stogov 72d1c50572 Use cheaper zend_rethrow_exception() instead of zend_throw_exception_internal() 2020-06-03 11:51:04 +03:00
Nikita Popov 3f6a212be7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Report len as -1 instead of INT_MAX
2020-06-03 10:17:27 +02:00
Nikita Popov 180b9af58a Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip new watch point test under asan
2020-06-03 10:02:31 +02:00
Dmitry Stogov c93c3b4f0e Handle VM interrupts after DO_ICALL through side exits 2020-06-03 10:58:17 +03:00
Nikita Popov 26ce32c45a %d out token IDs in test
Avoid having to update this test any time token numbers shift.
2020-06-03 09:57:22 +02:00
Dmitry Stogov d237989f33 Avoid reference counting when RETURN CV 2020-06-03 00:49:10 +03:00
Dmitry Stogov 38f9d95ffa Added missed helper 2020-06-02 23:50:32 +03:00
Christoph M. Becker 86057f5f44 Skip new test case on Windows when JIT is enabled
Cf. <http://git.php.net/?p=php-src.git;a=commit;h=c5cf0af8a98cbc574fd315bf9d78033b896886f3>.
2020-06-02 17:12:34 +02:00
Christoph M. Becker 486b8b1cd1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #73927: phpdbg fails with windows error prompt at "watch array"
2020-06-02 15:19:32 +02:00
Dmitry Stogov f733047ae2 Tracing JIT support for indirect CV modification (may be incomplete) 2020-06-02 15:55:18 +03:00
Dmitry Stogov 99053228b9 Afdded misse MAY_BE_ARRAY_* flags 2020-06-02 15:54:44 +03:00
Christoph M. Becker 97b7dbb8f4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79664: PDOStatement::getColumnMeta fails on empty result set
2020-06-02 10:48:15 +02:00
Nikita Popov 6b45039fb7 Add some mixed types 2020-06-02 10:16:13 +02:00
Dmitry Stogov 2706615418 Fixed retutn type inference when return undefined variable 2020-06-01 16:26:22 +03:00
Christoph M. Becker 520a403fcd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79650: php-win.exe 100% cpu lockup
2020-06-01 13:25:58 +02:00
Dmitry Stogov b0613d16d7 Fixed tracing JIT for closure run_time_cache access 2020-06-01 12:06:26 +03:00
Ilija Tovilo c599d173ab Fix php_get_args function info return type and add arg check
Closes GH-5648.
2020-05-31 17:15:58 +02:00
Nikita Popov eeb7a7cd7a Add UPGRADING note for pty support
[ci skip]
2020-05-31 17:14:41 +02:00
Nikita Popov 393cd89ffb Add UPGRADING note for xmlrpc unbundling
And drop other UPGRADING references to xmlrpc. I don't think it
makes sense to have those for extensions that are no longer
shipped...

[ci skip]
2020-05-31 16:57:37 +02:00
Nikita Popov d7f17ea44d Fix some line overruns in UPGRADING
[ci skip]
2020-05-31 16:55:46 +02:00
Nikita Popov 805e3e3af4 Move upgrading note for mixed
This should be in the "new features" section.

[ci skip]
2020-05-31 16:48:14 +02:00
Daniel Ruf cf513c2dc8 Fix small typo in comment 2020-05-31 15:03:09 +02:00
Moni c5d9736130 update node-fetch url 2020-05-31 12:23:28 +02:00
Máté Kocsis 4a10eb4f53 Fix #79653 Unexpected error for ArrayIterator::ksort()
Closes GH-5644
2020-05-30 16:59:49 +02:00
George Peter Banyard 2302b14aab Use ZPP callable check for spl_autoload_register.
This makes it always throw a TypeError, moreover this makes the
error message consistent.

Added a warning mentioning that the second parameter is now ignored
when passed false.

Closes GH-5301
2020-05-30 13:59:06 +02:00
Máté Kocsis dd6e54b746 Fix #79652 Ensure that the mixed type is displayed instead of the union of all types
Closes GH-56430
2020-05-30 08:58:59 +02:00
Christoph M. Becker 4fa3687e56 Unbundle ext/xmlrpc
According to <https://wiki.php.net/rfc/unbundle_xmlprc> we unbundle
ext/xmlrpc.
2020-05-29 16:47:44 +02:00
Máté Kocsis 444aa2636e Add upgrading notes about the deprecated functionality in ext/enchant
[skip ci]
2020-05-29 15:15:27 +02:00
Máté KocsisandRemi Collet cd3e04dff3 Convert enchant resources to opaque objects
Additionally, deprecate ENCHANT_MYSPELL and ENCHANT_ISPELL constants.
Closes GH-5577

Co-authored-by: Remi Collet <remi@php.net>
2020-05-29 14:51:41 +02:00
Christoph M. Becker f06844239f Support libzip 1.6 on Windows 2020-05-29 13:43:51 +02:00
Nikita Popov ec3ee1f173 Fix Windows build 2020-05-29 12:58:31 +02:00
Dmitry Stogov 8e8c5a73ee Fixed tracing JIT register allocator (failure on ext/opcache/tests/jit/assign_002.phpt) 2020-05-29 13:27:47 +03:00
Dmitry Stogov dc7a0fb236 Allow tracing JIT generate code when function exits from VM (e.g. for magic __get/__set) 2020-05-29 13:25:59 +03:00
Nikita Popov 7562679b45 Remove json checks in fuzzer SAPI
JSON is now always enabled
2020-05-29 12:08:45 +02:00
Dmitry Stogov 7aa8c7e6aa Don't add guards that are not going to be checked 2020-05-29 12:17:09 +03:00
Dmitry Stogov de7a0df0a2 Fixed use-after-free in tracing JIT when recording closures and top-level op_arrays. 2020-05-29 00:45:28 +03:00
Tyson Andre 32a1ebbd43 Clean up calls to extension_loaded('json') in tests
These are no longer needed after https://wiki.php.net/rfc/always_enable_json

Closes GH-5637
2020-05-28 15:07:47 -04:00
Dmitry Stogov 784f1b5c49 Fixed tracing JIT type inference for passing undefined CV by value 2020-05-28 18:35:32 +03:00
Dmitry Stogov 0abe742d72 Fixed incorrect trace type inference for top-level code 2020-05-28 17:43:29 +03:00
Dmitry Stogov 1d98bd41e5 Fixed incorrect type inference 2020-05-28 17:10:05 +03:00
Christoph M. Becker 6b769a3dc6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix PVS-Studio integration
2020-05-28 15:35:47 +02:00
David Carlier 6dca024a09 Build fix for newer versions of NetBSD.
its libutil contains newer conflicting apis as estrdup, emalloc.

Closes GH-5635
2020-05-28 14:31:04 +02:00
Nikita Popov 70b2aa7fb8 Ensure Exception::getFile/getLine return type is correct
These return an untyped protected property, so we can't rely on
the type being correct.

Also add return types to the interface -- normally this would be
a no-go, but Throwable is a special interface that can only
be implemented internally, so we control all implementations.
2020-05-28 14:19:47 +02:00
Nicolas Grekas d579e1809a Run Symfony tests in per-component 2020-05-28 14:08:27 +02:00
Nicolas Grekas ef9a790f12 Re-enable Symfony test on PHP 8 2020-05-28 14:08:25 +02:00
Nikita Popov 5716fa7f49 Make Exception::$previous a typed property
Exception::$previous is a private property, so we can add a type:

    private ?Throwable $previous = null;
2020-05-28 14:01:29 +02:00
Nikita Popov aaae77f7f1 Make Exception::$trace typed array property
This is a private property, so we are allowed to add a type.
The new declaration of the property is:

    private array $trace = [];

This ensures that Exception::getTrace() does indeed return an array.

Userland code that was modifying the property through refleciton
may have to be adjusted to assign an array (instead of null,
for example).

Closes GH-5636.
2020-05-28 13:55:38 +02:00
Dmitry Stogov c16dbed0c4 Avoid recording of uninitialized types.
VM doesn't set Z_TYPE() for IS_VAR when passes class_entry reference.
2020-05-28 14:39:41 +03:00
Máté Kocsis 58cb0e4732 Add some mixed parameter types and fix UNKNOWN default values in ext/xmlrpc 2020-05-28 12:41:48 +02:00
Nikita Popov 01e86d6d70 Extract code for declaring Exception/Error properties 2020-05-28 12:15:16 +02:00
Nikita Popov 55dd3945fb Convert Exception::getMessage() result to string
We specify that the return type of Exception::getMessage() is a
string. However, we don't currently ensure this, because
Exception::$message is a protected member that can be set to any
type. Fix this by performing an explicit type-cast.

This also requires a temporary refcount increment in the __toString()
object handler, because there is no additional owner of the object,
and it may get released prematurely as part of the __toString() call.
2020-05-28 11:51:35 +02:00
Dmitry Stogov efbe96166d Split "opcache.jit_max_recursion_unroll" into "opcache.jit_max_recursive_calls" and "opcache.jit_max_recursive_returns".
It's possible to disable recording of "recursive return loops" setting opcache.jit_max_recursive_returns to 0.
2020-05-28 12:28:05 +03:00
Nicolas Grekas caca664871 Fix func info for sodium_crypto_aead_xchacha20poly1305_ietf_decrypt 2020-05-28 10:44:26 +02:00
Nikita Popov b53f83c0c3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use automatic port assignment in socket_import/export test
2020-05-28 10:20:12 +02:00
Dmitry Stogov 501a2e86e8 Add a side exit on enter to function if it may be called with different number of arguments. 2020-05-28 01:22:32 +03:00
Dmitry Stogov bd329a6019 Keep information about SEND_UNPACK/SEND_ARRAY in call_info 2020-05-27 22:15:14 +03:00
Dmitry Stogov d2d5738b32 Fixed tracing JIT support for ZEND_RETURN_BY_REF in CALL VM 2020-05-27 18:04:16 +03:00
Dmitry Stogov 0bf2bfcf8d Fixed tracing JIT for CALL VM 2020-05-27 17:05:06 +03:00
Dmitry Stogov 645ff9c8f6 Revert "Fixed tracing JIT for CALL VM"
This reverts commit 7f3a296f84.
2020-05-27 17:04:31 +03:00
Remi Collet 17649648ed always build json statically 2020-05-27 15:36:07 +02:00
Tyson Andre cc27781f40 [RFC] Always enable JSON support in php 8.0
Currently, it's possible to disable the json extension with
`./configure --disable-json` (for historical reasons that no longer apply).
However, JSON is widely used in many use cases - web sites, logging output,
and as a data format that can be used to share data with many applications
and programming languages,
so I'd personally find it useful if it was always enabled.

Examples of where this would be useful:

- For internal classes to be able to implement `JsonSerializable`
  which currently requires a hard dependency on the JSON extension.
- For PHP users to publish single-file scripts that use json_encode and
  json_decode and don't require polyfills or less readable var_export output.
  (polyfills are less efficient and may have issues with recursive data
  structures)
- So that php-src's own modules, tools and test cases can start using JSON
  if it's a good choice for encoding a value. (same for PECLs)

https://wiki.php.net/rfc/jsond mentions that in PHP 5,

> The current Json Parser in the json extension does not have a free license
> which is a problem for many Linux distros.
> This has been referenced at Bug #63520.
> That results in not packaging json extension in the many Linux distributions.

Starting in php 7.0 with the switch to jsond,
It looks like licensing is no longer an issue.

Changes:

- Remove all flags related to JSON such as `configure --disable-json`
- Require that JSON be compiled statically instead of as a shared library

Examples of uses of JSON in various distros
(backwards incompatible changes such as changing packaging are typically
reserved for major versions, and 8.0 is a major version)

- JSON is required by `php-cli` or `php` in ubuntu:
  https://packages.ubuntu.com/focal/php/
- The php-json package has to be installed separately
  from the PHP binary in Fedora repos.

Closes GH-5495
2020-05-27 09:08:43 -04:00
Dmitry Stogov 7f3a296f84 Fixed tracing JIT for CALL VM 2020-05-27 15:59:29 +03:00
Christoph M. Becker c5cf0af8a9 Mark several phpdbg tests as xfail
Apparently, breakpoints and watchpoints are practically disabled if
run with OPcache JIT under Windows, so we mark the affected tests as
xfail in that case for the time being.
2020-05-27 11:39:15 +02:00
Nikita Popov 0221b8b2ab Add support for * width and precision in printf()
If * is used for width/precision in printf, then the width/precision
is provided by a printf argument instead of being part of the format
string. Semantics generally match those of printf in C.

This can be used to easily reproduce PHP's float printing behavior:

    // Locale-sensitive using precision ini setting.
    // Used prior to PHP 8.0.
    sprintf("%.*G", (int) ini_get('precision'), $float);

    // Locale-insensitive using precision ini setting.
    // Used since to PHP 8.0.
    sprintf("%.*H", (int) ini_get('precision'), $float);

    // Locale-insensitive using serialize_precision ini setting.
    // Used in serialize(), json_encode() etc.
    sprintf("%.*H", (int) ini_get('serialize_precision'), $float);

Closes GH-5432.
2020-05-27 10:42:25 +02:00
Dmitry Stogov 2423288f0f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed possible usage of uninitialized value
2020-05-27 11:27:34 +03:00
Nikita Popov b6000b7e0e Add support for %h and %H in printf()
These are locale-independent variants of %g and %G.

Closes GH-5436.
2020-05-27 10:19:23 +02:00
Nikita Popov a01b6e5787 Return empty array instead of null from enchant APIs
Closes GH-5566.
2020-05-27 10:12:21 +02:00
Dmitry Stogov f91283fcd4 Fixed JIT for ext/opcache/tests/bool_not_cv.phpt with opcache.jit=1202 2020-05-27 10:57:33 +03:00
Alex Dowad 0bff4e56e2 Tweak style and grammar in proc_open.c 2020-05-27 09:05:31 +02:00
Alex Dowad dff7994ff4 Avoid compiler warnings in proc_open.c
We are getting a lot of compiler warnings when building on Appveyor CI (Windows).
Fix some of them.

Closes GH-5629
2020-05-27 09:05:14 +02:00
Dmitry Stogov 6e5247275a Fixed JIT for ext/opcache/tests/jit/cmp_004.phpt with opcache.jit=1201 2020-05-27 09:59:12 +03:00
Dmitry Stogov d2f811438e Set proper jit_extension for inherited methods 2020-05-27 09:58:03 +03:00
Máté Kocsis 0de3ca4f98 Let's try to fix the JIT compiler warning 2020-05-26 20:56:29 +02:00
Máté Kocsis fbe30592d6 Improve type error messages when an object is given
From now on, we always display the given object's type instead of just reporting "object".
Additionally, make the format of return type errors match the format of argument errors.

Closes GH-5625
2020-05-26 19:06:19 +02:00
Christoph M. Becker 38c85efe83 Fix picky builds
Due to `-Werror=maybe-uninitialized` a bogus warning may be thrown, so
we initialize the variable to work-around that.
2020-05-26 18:37:29 +02:00
Christoph M. Becker d2508ef947 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable phpdbg tests on AppVeyor
  Make phpdbg test portable
  Fix several mostly Windows related phpdbg bugs
  Fix #73926: phpdbg will not accept input on restart execution
2020-05-26 17:46:56 +02:00
Christoph M. Becker 31e410e098 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79595: zend_init_fpu() alters FPU precision
2020-05-26 17:21:29 +02:00
Dmitry Stogov 15aa891c5e Fixed JIT for integer overflow checks 2020-05-26 17:59:15 +03:00
Nikita Popov baa285881f Fix variable type
This is no longer a boolean.
2020-05-26 15:58:36 +02:00
Tyson Andre 9b33272536 Allow generators to have a real return type of mixed or object
Fixes an edge case overlooked in
https://github.com/php/php-src/pull/5313

Generators are objects, so `object` should have also been allowed in addition to
`iterable` and `Traversable`

Closes GH-5626
2020-05-26 09:57:10 -04:00
Derick Rethans 446525cb87 Merge branch 'PHP-7.4' 2020-05-26 14:20:24 +01:00
Max Semenik 23ee4d4b57 Support catching exceptions without capturing them to variables
RFC: https://wiki.php.net/rfc/non-capturing_catches

Closes GH-5345.
2020-05-26 15:12:18 +02:00
Nikita Popov 1203bbf07e Merge branch 'PHP-7.4'
* PHP-7.4:
  Respect typed references in catch assignment
2020-05-26 15:03:26 +02:00
Nikita Popov 2daa89b1e6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix zend_assign_to_typed_ref() implementation
2020-05-26 14:44:09 +02:00
Dmitry Stogov 59e69eb1c9 Fixed JIT for (LONG_MIN % -1) 2020-05-26 14:49:29 +03:00
Derick Rethans ac2dd9d5e8 Merge branch 'PHP-7.4' 2020-05-26 11:47:43 +01:00
Nikita Popov 81c824f41f Clarify ZEND_CATCH code
UNDEF the opcode result instead of addref'ing the exception.
2020-05-26 11:34:07 +02:00
Max Semenik f825c0bb88 Improve language in error messages
Closes GH-5617
2020-05-26 11:27:07 +02:00
Christoph M. Becker 2261234720 Merge branch 'PHP-7.4'
* PHP-7.4:
  7.3.20 will be next
2020-05-26 10:58:45 +02:00
Dmitry Stogov cf3b133a86 Fixed JIT for SEND_VAR $undefined_cv 2020-05-26 10:13:57 +03:00
Nikita Popov ca358001b9 Revert "Fixed JIT for SEND_VAR $undefined_cv"
This reverts commit d60988257b.

This change causes segfaults in many tests.
2020-05-25 23:51:11 +02:00
Dmitry Stogov 0386cbb95c Fixed tracing JIT for RETRUN $undefined_cv 2020-05-25 22:19:13 +03:00
David Carlier e8ba8908a9 proc_open FreeBSD build fix
On this platform the needed header is different.

Closes GH-5623
2020-05-25 18:38:38 +02:00
Máté Kocsis b3718430de Annotate internal functions with the mixed type
Closes GH-5618
2020-05-25 17:30:57 +02:00
Máté Kocsis cbf86efc21 Fix ZPP of v*printf() 2020-05-25 17:29:46 +02:00
Máté Kocsis 43095a55e2 Promote warning related to operator overloading in ext/gmp to an exception 2020-05-25 17:26:33 +02:00
Dmitry Stogov d60988257b Fixed JIT for SEND_VAR $undefined_cv 2020-05-25 18:24:50 +03:00
Dmitry Stogov 4aa8678306 ZEND_ACC_IMMUTABLE may be reset for closures 2020-05-25 17:45:13 +03:00
Dmitry Stogov bfc56ed511 Keep trace number in EG(jit_trace_num) instead of EG(reserved)[zend_func_info_rid] 2020-05-25 17:05:26 +03:00
Dmitry Stogov 3376f19742 Check for ZEND_HANDLE_EXCEPTION opcode before accessing opline trace info. 2020-05-25 16:45:45 +03:00
Dmitry Stogov 201491e61b Replace warning code by side exit to VM 2020-05-25 15:14:27 +03:00
Dmitry Stogov b35a9a4ce6 Reorder conditions to save one instruction in recursive return loop 2020-05-25 12:55:03 +03:00
Christoph M. Becker ce668c0ec6 PGSQL and POD_SQL: don't include pg_config.h
Even if that header file is available, we better consider it private,
and don't include it.  The information about whether SSL support is
enabled is now missing (`USE_(OPEN)SSL`), and it seems there is no
alternative way to get it (`PQinitSSL()` is always defined), so we
remove it from the PHP info.  Furthermore, the `PG_VERSION` and
`PG_VERSION_STR` macros are no longer available, but as of libpq 9.1
there is `PQlibVersion()` which allows us to construct `PG_VERSION` in
a most likely backwards compatible manner.  The additional information
available through `PG_VERSION_STR` is lost, though, so we define
`PGSQL_LIBPQ_VERSION_STR` basically as alias of `PGSQL_LIBPQ_VERSION`,
and deprecate it right away.

Since we are now requiring at least libpq 9.1, we can remove some
further compatibility code and additional checks.

Regarding the raised requirements: official support for PostGreSQL 9.0
ended on 2015-10-08, and even CentOS 7 already has PostGreSQL 9.2, so
this is not supposed to be too much of an issue.
2020-05-25 10:48:35 +02:00
Tyson Andre f3efb9e3fb Fail in ./configure when no opcache shm backends exist
This can be seen when the `./configure` step fails to detect `HAVE_SHM_*`,
e.g. due to missing a necessary dependency to compile the test scripts.
(Run `./configure`, run `yum install libtool-ltdl-devel` for missing dependencies,
then run `make`, and php can end up built with 0 shared memory opcache caches)

Give a clearer error message than `unknown`
Searching for `opcache "Fatal Error Unable to allocate shared memory segment of"
"unknown: No such file or directory"` reveals issues such as
https://github.com/termux/termux-packages/issues/2234

Closes GH-5615
2020-05-24 17:49:52 -04:00
George Peter Banyard cebe750f46 Refactor ZPP API to use uint32_t as everywhere else
Closes GH-5609
2020-05-22 17:13:42 +02:00
George Peter Banyard bc3ee2eeea [skip-ci] Update UPGRADING
Add upgrading note for mixed type and removal of curly braces offset syntax
2020-05-22 17:02:30 +02:00
Nikita Popov b9d0ff7634 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fix #79595: zend_init_fpu() alters FPU precision"
2020-05-22 16:57:24 +02:00
George Peter Banyard c803499e23 Remove depreacted curly brace offset syntax
Closes GH-5221
2020-05-22 16:52:17 +02:00
Nikita Popov a307e48d67 Merge branch 'PHP-7.4'
* PHP-7.4:
  Show diffs for failed tests on Azure CI
2020-05-22 16:37:22 +02:00
Máté KocsisandDan Ackroyd aec4c0fd03 Add support for the mixed type
RFC: https://wiki.php.net/rfc/mixed_type_v2
Closes GH-5313

Co-authored-by: Dan Ackroyd <danack@basereality.com>
2020-05-22 16:08:12 +02:00
Christoph M. Becker 4bc1d8333a Raise ext/pgsql requirements to PostGreSQL 7.4
We can safely assume that users have at the very least libpq 7.4, for
which official support ended on 2010-10-01; even CentOS 6 has 8.4 now.
It is also noteworthy that PDO_PGSQL already requires libpq 7.4 or
later.
2020-05-22 15:56:24 +02:00
Christoph M. Becker c0920e674f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79595: zend_init_fpu() alters FPU precision
2020-05-22 15:47:33 +02:00
Dmitry Stogov f4b46314f6 Prevent CGG reordering if hanlers order is defined by zend_vm_order.txt 2020-05-22 12:37:35 +03:00
Dmitry Stogov 0085cbffd8 Fixed typecast 2020-05-22 12:36:52 +03:00
Gerard Roche cf3d3cd86f Fix PostgreSQL and MySQL setup on Travis CI
Note that the PostgreSQL tests still don't work on some architectures.

Closes GH-5607.
2020-05-22 10:02:57 +02:00
Gerard Roche d1dde094f2 run-tests: refactor 2020-05-22 09:58:04 +02:00
Gerard Roche 2ef88f517d run-tests: echo message and exit if no tests found
The test runner currently defaults to running the entire test suite if
no selected tests can be found. This can be unexpected.

For example the ext/mysqlnd/ directory has no tests, if you specify that
directory when testing the entire test suite will be run.

    run-tests.php [options] ext/mysqlnd/

Closes GH-5605.
2020-05-22 09:37:46 +02:00
Christoph M. Becker 7f51f43509 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79615: Wrong GIF header written in GD GIFEncode
2020-05-22 09:22:38 +02:00
Dmitry Stogov bb1a68b40c Use EX(run_time_cache) instead of RUN_TIME_CACHE(&EX(func)->op_array) 2020-05-21 18:35:32 +03:00
Dmitry Stogov a9b2ff3dda simplification 2020-05-21 18:01:44 +03:00
Dmitry Stogov 2dfd6cd373 Allow counter settings to be "zero" to disable corresponding counter 2020-05-21 01:06:50 +03:00
Dmitry Stogov d2446ca1d9 Missed label 2020-05-21 00:57:54 +03:00
Dmitry Stogov b65d366bf8 Better condition 2020-05-20 23:05:48 +03:00
Dmitry Stogov 95248491af Prefer already cached version of the script 2020-05-20 23:04:34 +03:00
George Peter Banyard 3b62e8b9ab Fix [-Wundef] warning in SQLite3 extension 2020-05-20 18:22:11 +02:00
George Peter Banyard 6a151225dc Fix [-Wundef] warning in SPL extension 2020-05-20 18:22:10 +02:00
George Peter Banyard e6930bcfba More [-Wundef] warnings fixed in POSIX extension
Forgot to squash this into the other commit
2020-05-20 18:22:10 +02:00
George Peter Banyard 3092a1ee12 Fix [-Wundef] warning in PHAR extension 2020-05-20 18:22:10 +02:00
George Peter Banyard 999f65c9cd Fix [-Wundef] warning in OpenSSL extension 2020-05-20 18:22:10 +02:00
George Peter Banyard ea8686540a Fix [-Wundef] warning in INTL extension 2020-05-20 18:22:10 +02:00
George Peter Banyard 9cc24baa1c Fix [-Wundef] warning in Iconv extension 2020-05-20 18:22:09 +02:00
George Peter Banyard 2f0dcf2ac2 Fix [-Wundef] warning in GD extension 2020-05-20 18:22:09 +02:00
Nikita Popov e852944f63 Add --enable-memory-sanitizer flag
This flag enabled msan late in the pipeline, so that it does
not affect configure checks.

Otherwise we get a false positive report for openpty availability
without -lutil, which will then result in infinite recursion if
actually called.

This also sets origin tracking to 2, so bump the timeout to 90
minutes.
2020-05-20 16:46:28 +02:00
George Peter Banyard c85ded7632 Fix [-Wundef] warning in PDO PostgreSQL extension 2020-05-20 16:29:53 +02:00
George Peter Banyard 50af36a8aa Fix [-Wundef] warning in PDO ODBC extension 2020-05-20 16:29:53 +02:00
George Peter Banyard a43f100fda Fix [-Wundef] warning in PDO OCI extension 2020-05-20 16:29:53 +02:00
George Peter Banyard c932cc841a Fix [-Wundef] warning in PDO MySQL extension 2020-05-20 16:29:52 +02:00
George Peter Banyard db7dc2fa2f Fix [-Wundef] warning in PDO Firebird extension 2020-05-20 16:29:52 +02:00
George Peter Banyard 1c598cf6a8 Fix [-Wundef] warning in PDO DBLib extension 2020-05-20 16:29:52 +02:00
George Peter Banyard f0794c7719 Fix [-Wundef] warning in SimpleXML extension 2020-05-20 16:29:52 +02:00
George Peter Banyard e5a7ab33f6 Fix [-Wundef] warning in SOAP extension 2020-05-20 16:29:51 +02:00
George Peter Banyard 336998f110 Fix [-Wundef] warning in XLS extension 2020-05-20 16:29:51 +02:00
George Peter Banyard c7055f5916 Fix [-Wundef] warning in XMLReader extension 2020-05-20 16:29:51 +02:00
George Peter Banyard 7fa0d30014 Fix [-Wundef] warning in XML extension 2020-05-20 16:29:51 +02:00
Tyson Andre 3e045d5f2b Fix grammar in the jit's README.md
For GH-5585
2020-05-20 10:01:34 -04:00
Tyson Andre 27b849ec9a [skip ci] Add a README for Opcache's JIT.
Mention information that would be useful for working on new features or bug
fixes for the JIT.

Closes GH-5585
2020-05-20 09:58:24 -04:00
Nikita Popov 25aa125530 Add file cache job on azure 2020-05-20 15:33:20 +02:00
Nikita Popov 0374cf08c7 Add --file-cache-prime/use options to run-tests
--file-cache-prime populates the file cache,
--file-cache-use uses the file cache.

And fix a number of tests to run under file cache or disabled
timestamp validation.
2020-05-20 15:29:32 +02:00
Nikita Popov 40b59cee8a Merge branch 'PHP-7.4'
* PHP-7.4:
  Update msan symbolizer path
2020-05-20 15:25:19 +02:00
Christoph M. Becker ca6dd7e984 Fix --disable-ipv6 support on Windows
`HAVE_IPV6` and `HAVE_GAI_STRERROR` are supposed to be undefined now,
if not supported.
2020-05-20 15:13:53 +02:00
Máté Kocsis 86d58e9fff Generate function entries for ext/zip
Closes GH-5601
2020-05-20 14:22:11 +02:00
Christoph M. Becker a582931f42 Revert "Revert "Merge branch 'PHP-7.4'""
This reverts commit 28e650a, which reverted commit 046dcfb, which had
to be reverted due to phpdbg issues.  The culprit was that we did not
properly reset `zend_handler_table` to `NULL`, which is required for
SAPIs which may restart the engine after shutdown.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=28e650abf8097a28789a005e5028fee095359583>
[2] <http://git.php.net/?p=php-src.git;a=commit;h=046dcfb531e242d36a7af2942b9b148290c3c7fe>
2020-05-20 14:11:42 +02:00
George Peter Banyard 466e288b01 Fix [-Wundef] warning in PostgreSQL extension 2020-05-20 14:01:11 +02:00
George Peter Banyard f677251ceb Fix [-Wundef] warning in POSIX extension 2020-05-20 14:01:11 +02:00
George Peter Banyard 616bf43978 Fix [-Wundef] warning in PSpell extension 2020-05-20 14:01:11 +02:00
George Peter Banyard 21c0f8a984 Fix [-Wundef] warning in Session extension 2020-05-20 14:01:11 +02:00
George Peter Banyard f23b3026bc Fix [-Wundef] warning in SHMOP extension 2020-05-20 14:01:10 +02:00
George Peter Banyard 85104fae37 Fix [-Wundef] warning in ODBC extension 2020-05-20 14:01:10 +02:00
George Peter Banyard 24de4274f3 Fix [-Wundef] warning in PCNTL extension 2020-05-20 14:01:10 +02:00
George Peter Banyard d50b076fa3 Fix [-Wundef] warning in PCRE extension 2020-05-20 14:01:10 +02:00
George Peter Banyard 1f72dd89a5 Fix [-Wundef] warning in TSRM 2020-05-20 14:01:10 +02:00
Nikita Popov ec1e8540d8 Slightly deduplicate run-tests code 2020-05-20 11:58:42 +02:00
Nikita Popov c2068e95b4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #79603, by retrying on RTD key collision
2020-05-20 11:24:37 +02:00
Nikita Popov 0a74da385d Add support for replaying warnings in opcache
If opcache.record_warnings is enabled, opcache will record
compilation warnings and replay them when the file is included
again. The primary use case I have in mind for this is automated
testing of the opcache file cache.

This resolves bug #76535.
2020-05-20 11:20:21 +02:00
Nikita Popov 1b1d313275 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix static property indirections in file cache
  Don't require rc=1 for function static variables
2020-05-20 11:13:35 +02:00
Nikita Popov 057875d161 Disable JIT in file cache test
File cache and JIT are currently incomatible.
2020-05-20 09:50:12 +02:00
Dmitry Stogov e35c163e33 Tracing JIT SHM data initilaizarion must be done at MINIT 2020-05-20 02:07:18 +03:00
Dmitry Stogov d1a92ddc72 typo 2020-05-20 02:07:07 +03:00
Dmitry Stogov 928c796290 Make number of root and side traces configurable 2020-05-20 01:40:01 +03:00
Dmitry Stogov e18f631abe Use light version of zend_array_destroy() to free arrays without refcounted elements and string indexes. 2020-05-20 00:12:24 +03:00
Christoph M. Becker 496171a5ca Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump version
2020-05-19 17:28:39 +02:00
Christoph M. Becker 5211ddce0e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix INI setting member name
2020-05-19 16:01:48 +02:00
Dmitry Stogov 6faa08f41c Separate common code 2020-05-19 16:59:07 +03:00
Máté Kocsis ed6cf67879 Fix some final classes in stubs 2020-05-19 14:54:37 +02:00
Máté Kocsis d1d3a4afd5 Generate method entries for Closure 2020-05-19 14:19:37 +02:00
Nikita Popov 74ef4bd7ed Fix opcache_get_configuration() test 2020-05-19 14:12:30 +02:00
Dmitry Stogov 8c19e611aa Make JIT parameters configurable through opcache.jit_... options 2020-05-19 13:35:02 +03:00
Nikita Popov 33b5c026aa Extract zend_foreach_op_array()
Move this functionality from zend_call_graph into zend_optimizer,
because we use this pattern in a number of places.
2020-05-19 11:15:54 +02:00
Dmitry Stogov d377467d86 Keep ZEND_FUNC_INFO() for all run-time JIT triggers 2020-05-18 19:00:38 +03:00
Nikita Popov c3bbcff5e6 Fix phpdbg test with JIT
With JIT one extra cache slot is allocated, so the extended_value
needs one more character, and the output ends up having one space
less...
2020-05-18 15:25:24 +02:00
Derick Rethans 3707d75f4b Merge branch 'PHP-7.4' 2020-05-18 13:51:47 +01:00
Dmitry Stogov 5899b1611e Fixed JIT on load with -O4 2020-05-18 15:29:28 +03:00
Dmitry Stogov eae6df494d Wrong condition 2020-05-18 15:04:39 +03:00
Dmitry Stogov 7a07deca0f Fixed JIT with non-HYBRID VM 2020-05-18 14:56:39 +03:00
Dmitry Stogov 99611573f0 Tracing JIT with -O1 doesn't need to do type inference and abstract stack maintaining 2020-05-18 14:39:49 +03:00
Dmitry Stogov a463197d7a func_info should be empty 2020-05-18 14:30:55 +03:00
George Peter Banyard 3302ffb09e Fix bogus check in TSRM and adjust TSRM_ASSERT macro
Closes GH-5562
2020-05-18 12:24:23 +02:00
Dmitry Stogov 0695048e20 JIT refactoring to allow run-time changes of JIT options (triggers, optimization_level, debug flags, etc) 2020-05-18 10:23:06 +03:00
Máté Kocsis 1179686f62 Improve error messages for invalid property access
Closes GH-5446
Co-authored-by:  Nikita Popov <nikita.ppv@gmail.com>
2020-05-18 08:27:00 +02:00
Remi Collet b1fddec717 relax test (TS issue) 2020-05-18 07:53:03 +02:00
George Peter Banyard 7c33644fed Fix [-Wextra-tokens] warning in MySQLi extension which breaks build
Didn't double check and this slipped through with my big search and replace
2020-05-18 01:00:47 +02:00
George Peter Banyard 1330359515 Fix [-Wundef] warning in MySQLnd extension 2020-05-18 00:37:20 +02:00
George Peter Banyard 82afcf4401 Fix [-Wundef] warning in MySQLi extension 2020-05-18 00:37:19 +02:00
George Peter Banyard 5f0128e1e0 Fix [-Wundef] warning in ZIP extension 2020-05-18 00:37:18 +02:00
George Peter Banyard bc9497695e Fix [-Wundef] warning in Tidy extension 2020-05-18 00:37:18 +02:00
George Peter Banyard 714c5f0b70 Fix [-Wundef] warning in Sysvmsg extension 2020-05-18 00:37:17 +02:00
George Peter Banyard 2df6482db9 Fix [-Wundef] warning in Sysvsem extension 2020-05-18 00:37:17 +02:00
George Peter Banyard 418bb5ebda Fix [-Wundef] warning in Sysvshm extension 2020-05-18 00:37:16 +02:00
George Peter Banyard 046ff29958 Fix [-Wundef] warnings in LDAP extension 2020-05-18 00:37:15 +02:00
George Peter Banyard f717ec608d Adjust bogus checks in FPM as HAVE_FPM_LQ is always defined
Drop checks for FPM status as per review

Closes GH-5530
2020-05-17 22:04:35 +02:00
George Peter Banyard 35e0a91db7 Fix [-Wundef] warnings in libxml extension 2020-05-16 15:31:23 +02:00
George Peter Banyard 68164f40ce Fix [-Wundef] warning in MBString extension 2020-05-16 15:31:20 +02:00
George Peter Banyard c19887496e Fix [-Wundef] warning in IMAP extension 2020-05-16 15:31:18 +02:00
George Peter Banyard 2cf24ff923 Fix [-Wundef] warning in GetText extension 2020-05-16 15:31:17 +02:00
George Peter Banyard 8a18116dba Fix [-Wundef] warning in FTP extension 2020-05-16 15:31:17 +02:00
George Peter Banyard fb5114c675 Fix [-Wundef] warning in Filter extension 2020-05-16 15:31:16 +02:00
George Peter Banyard e37501e6c7 Fix [-Wundef] warning in EXIF extension 2020-05-16 15:31:16 +02:00
George Peter Banyard 62b1d2cb69 Fix [-Wundef] warning in DOM extension 2020-05-16 15:31:15 +02:00
George Peter Banyard 93b51f4e26 Fix [-Wundef] warning in cURL extension 2020-05-16 15:31:13 +02:00
George Peter Banyard b35addc585 Fix [-Wundef] warning in CType extension 2020-05-16 15:31:13 +02:00
George Peter Banyard 0e016f2843 Fix [-Wundef] warning in BZip2 extension 2020-05-16 15:31:12 +02:00
George Peter Banyard 2bb1cc4ba9 Fix [-Wundef] warning in BCMath extension 2020-05-16 15:31:11 +02:00
George Peter Banyard b91c2845cf Drop check for HAVE_NSLDAP
This constant is never defined thus useless
2020-05-16 00:40:37 +02:00
George Peter Banyard 197cac65fd Use ZEND_FCI_INITIALIZED macro
Instead of manually checking that the fci.size is different than 0
2020-05-16 00:36:15 +02:00
Nikita Popov 00ef092335 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79600
2020-05-15 11:05:00 +02:00
Nikita Popov 406c95758d Remove some uses of zend_inline_hash_func
There's no need to force-inline the hashing for all of these.
2020-05-15 10:14:22 +02:00
Dmitry Stogov ba0731cd53 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  fixed typo of bug id (#79599)
  master doesn't been affected since we are not passing errcontext now
  Fixed bug #97599 (coredump in set_error_handler)
  Fix #79557: extension_dir = ./ext now use current directory for base
  Fix #79596: MySQL FLOAT truncates to int some locales
  [ci skip] Fix NEWS
2020-05-15 10:44:14 +03:00
Xinchen Hui c91f349717 Merge branch 'PHP-7.4'
* PHP-7.4:
  fixed typo of bug id (#79599)
2020-05-15 15:44:02 +08:00
Xinchen Hui 653652b2b6 master doesn't been affected since we are not passing errcontext now 2020-05-15 15:40:53 +08:00
Xinchen Hui 0ece5638a4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #97599 (coredump in set_error_handler)

Conflicts:
	Zend/zend.c
2020-05-15 15:40:43 +08:00
Christoph M. Becker 4631b4e813 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79557: extension_dir = ./ext now use current directory for base
2020-05-15 09:24:07 +02:00
Christoph M. Becker 2393692937 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79596: MySQL FLOAT truncates to int some locales
2020-05-15 09:13:22 +02:00
Christoph M. Becker 3771d6f8a1 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Fix NEWS
2020-05-15 08:59:55 +02:00
Dmitry Stogov e5e25d6352 Added HALT symbol 2020-05-15 01:06:47 +03:00
Christoph M. Becker f6ae728f56 Remove unused variable 2020-05-14 17:55:31 +02:00
Máté Kocsis 93640db4d5 Improve error message for deprecated methods 2020-05-14 17:23:31 +02:00
Bob Weinand 4bc1cf2928 Remove generated zend_jit_x86.c upon make distclean 2020-05-14 16:59:54 +02:00
Christoph M. Becker 5a17694304 Merge branch 'PHP-7.4'
* PHP-7.4:
  Check compatibility with proper runtime DLL
2020-05-14 15:59:34 +02:00
Nikita Popov e696732850 Merge branch 'PHP-7.4'
* PHP-7.4:
  Canonicalize bison error during ini parsing
2020-05-14 14:16:22 +02:00
Máté Kocsis 68527a7834 Add stubs for some SAPIs
For apache2handler, fpm, litespeed, phpdbg, specifically.
Partially implements GH-5295
2020-05-14 13:35:12 +02:00
Dmitry Stogov 161ee110bf Tracing JIT support for delayed call chain 2020-05-14 14:21:46 +03:00
Máté Kocsis 9198faa67f Convert resource to object in Sysvmsg
Closes GH-5546
2020-05-14 12:56:06 +02:00
Nikita Popov 75bac16788 Avoid duplicating the proc_open cleanup logic
Use a slightly ugly "goto unreachable" pattern to share this code,
so we don't have to duplicate cleanup logic for the success and
the failure cases.
2020-05-14 10:35:33 +02:00
Alex Dowad dc1496e4a3 Further refactoring of proc_open.c
This time a number of comments have been added to make it easy for new devs to understand
what is going on. Also adjusted error message to use colons rather than dashes.
2020-05-14 10:25:52 +02:00
Alex Dowad b983580dd7 Don't leak memory if wrong resource type is passed to proc_open
proc_open can accept stream resources in the descriptorspec, like this:

    proc_open("command", array(0 => $resource), $pipes);

Previously, if a resource which was *not* of type "stream" was passed, proc_open would
return without freeing dynamically allocated memory. It's fixed now.
2020-05-14 10:25:37 +02:00
Alex Dowad a84cd96e86 Add PTY support to proc_open (again after 16 long years)
Back in 2004, a feature was added to proc_open which allowed it to open a PTY,
connecting specific FDs in the child process to the slave end of the PTY and returning
the master end of the PTY (wrapped as a PHP stream) in the `$pipes` array. However,
this feature was disabled just about a month later. Little information is available
about why this was done, but from talking to the original implementer, it seems there
were portability problems with some rare flavors of Unix.

Re-enable this feature with a simplified implementation which uses openpty(). No
attempt is made to support PTYs if the platform does not have openpty(). The configure
script checks if linking with -lutil is necessary to use openpty(), but if anything
else is required, like including some special header or linking with some other library,
PTY support will be disabled.

The original PTY support for proc_open automatically daemonized the child process
(disassociating it from the TTY session and process group of the parent). However,
I don't think this is a good idea. Just because a user opens a child process in a
PTY, it doesn't mean they want it to continue running even when the parent process
is killed. Of course, if the child process is some kind of server, it will likely
daemonize itself; but we have no reason to preempt that decision.

It turns out that since 2015, there has been one test case for PTY support in
proc_open() in the test suite. This test was added in GitHub PR #1588
(https://github.com/php/php-src/pull/1588). That PR mentioned that the PHP
binary in the Debian/Ubuntu repositories is patched to *enable* PTY support. Checking
the Debian PHP repository (https://salsa.debian.org/php-team/php.git) shows that this
is still true. Debian's patch does not modify the implementation from 2004 in any
way; it just removes the #if 0 line which disables it.

Naturally, the test case is skipped if PTY support is not enabled. This means that ever
since it was added, every test run against the 'vanilla' PHP codebase has skipped it.

Interestingly, the test case which was added in 2015 fails on my Linux Mint PC... both
with this simplified implementation *and* when enabling the original implementation.
Investigation reveals the reason: when the child process using the slave end of the
PTY exits and its FDs are all closed, and all buffered data is read from the master
end of the PTY, any further attempt to read from the master end fails with EIO. The
test case seems to expect that reading from the master end will always return an
empty string if no data is available.

Likely this is because PHP's fread() was updated to report errors from the underlying
system calls only recently.

One way out of this dilemma: IF at least one FD referring to the slave end of the PTY is
kept open *in the parent process*, the failure with EIO will not occur even after the child
process exits. However, that would raise another issue: we would need a way to ensure the FD
will be closed eventually in long-running programs.

Another discovery made while testing this code is that fread() does not always return
all the data written to the slave end of the PTY in a single call, even if the data was
written with a single syscall and it is only a few bytes long.

Specifically, when the child process in the test case writes "foo\n" to the PTY, the parent
sometimes receives "foo" (3 bytes) and sometimes "foo\r\n" (5 bytes). (The "\r" is from the
TTY line discipline converting "\n" to "\r\n".) A second call to fread() does return the
remaining bytes, though sometimes all the data is read in the first call, and by the time
the second call is made, the child process has already exited. It seems that liberal use
of the @ operator is needed when using fread() on pipes.

Thanks to Nikita Popov for suggesting that we should just use openpty() rather than
grantpt(), unlockpt(), etc.
2020-05-14 10:25:37 +02:00
Nikita Popov ae5ca5459f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix lcov genhtml: ERROR: cannot read [file]
  Properly detect CRC32 APIs on aarch64 from configure
2020-05-14 09:39:03 +02:00
Jens de Nies a4cc9d83a1 Removed pure zpp tests in the imap extension
Closes GH-5569.
2020-05-14 09:37:22 +02:00
Christoph M. Becker 69d46c3433 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix brittle shmop test
2020-05-13 23:31:09 +02:00
Nikita Popov 50a9f511cc Allow null callback to array_filter()
With same behavior as not passing it.
2020-05-13 17:24:13 +02:00
Dmitry Stogov 9122638ecd Set "hybrid_ret_counters" only after links to "function entry" traces. 2020-05-13 17:45:48 +03:00
Remi Collet 30077100a4 Revert "doc for enchant Object move"
This reverts commit 2c63324a4e.
2020-05-13 15:56:18 +02:00
Remi Collet 5318971bc5 Revert "convert enchant resources to objects of new classes - EnchantBroker - EnchantDict add OO interface deprecate enchant_broker_free* (use unset instead) deprecate ENCHANT_MYSPELL and ENCHANT_ISPELL constants"
This reverts commit 7db4c24a37.
2020-05-13 15:56:14 +02:00
Remi Collet ea1bebbd41 Revert "add myself as enchant maintainer"
This reverts commit f987219c69.
2020-05-13 15:56:10 +02:00
Remi Collet 2c63324a4e doc for enchant Object move 2020-05-13 15:23:07 +02:00
Remi Collet 7db4c24a37 convert enchant resources to objects of new classes - EnchantBroker - EnchantDict add OO interface deprecate enchant_broker_free* (use unset instead) deprecate ENCHANT_MYSPELL and ENCHANT_ISPELL constants 2020-05-13 15:14:50 +02:00
Nikita Popov 87e6f93fd6 Assert on unknown type in zend_get_type_by_const() 2020-05-13 15:03:44 +02:00
Dmitry Stogov fa919f9277 Fixed JIT with ON_HOT_COUNTERS trigger (opcache.jit=1235) 2020-05-13 16:00:25 +03:00
Nikita Popov c6a6ca078b Use zend_zval_type_name() API where possible
Rather than zend_get_type_by_const(Z_TYPE_P()).
2020-05-13 14:56:05 +02:00
Nikita Popov 3f51d82bca Rename zend_zval_get_type() API
We have a bunch of APIs for getting type names and it's sometimes
hard to keep them apart ... make it clear that this is the one
you definitely do not want to use.
2020-05-13 14:56:05 +02:00
Máté Kocsis 256b7da356 Convert resource to object in XML-RPC extension
Closes GH-5457
2020-05-13 14:49:13 +02:00
Dmitry Stogov 98d8bcc13a Better trace_buffer packing 2020-05-13 15:45:42 +03:00
Alex Dowad 555489dd83 Honor script time limit when calling shutdown functions
A time limit can be set on PHP script execution via `set_time_limit` (or .ini file).
When the time limit is reached, the OS will notify PHP and `timed_out` and `vm_interrupt`
flags are set. While these flags are regularly checked when executing PHP code, once the
end of the script is reached, they are not checked while invoking shutdown functions
(registered via `register_shutdown_function`).

Of course, if the shutdown functions are implemented *in* PHP, then the interrupt flag
will be checked while the VM is running PHP bytecode and the timeout will take effect.
But if the shutdown functions are built-in (implemented in C), it will not.

Since the shutdown functions are invoked through `zend_call_function`, add a check of the
`vm_interrupt` flag there. Then, the script time limit will be respected when *entering*
each shutdown function. The fact still remains that if a shutdown function is built-in and
runs for a long time, script execution will not time out until it finishes and the
interpreter tries to invoke the next one.

Still, the behavior of scripts with execution time limits will be more consistent after
this patch. To make the execution time-out feature work even more precisely, it would
be necessary to scrutinize all the built-in functions and add checks of the `vm_interrupt`
flag in any which can run for a long time. That might not be worth the effort, though.

It should be mentioned that this patch does not solely affect shutdown functions, neither
does it solely allow for interruption of running code due to script execution timeout.
Anything else which causes `vm_interrupt` to be set, such as the PHP interpreter receiving
a signal, will take effect when exiting from an internal function. And not just internal
functions which are called because they were registered to run at shutdown; there are
other cases where a series of internal functions might run in the midst of a script. In
all such cases, it will be possible to interrupt the interpreter now.

Closes GH-5543.
2020-05-13 12:47:12 +02:00
Xinchen Hui f06f260292 Revert "Fixed crash if jit.trigger is counter based with preload scripts"
This reverts commit 3d4e23aa92.
2020-05-13 18:35:00 +08:00
Xinchen Hui ded0b34a48 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Use new Fast ZPP macros for string|int parar types
  utime is always available on Windows
2020-05-13 18:23:55 +08:00
Xinchen Hui 3d4e23aa92 Fixed crash if jit.trigger is counter based with preload scripts 2020-05-13 18:22:29 +08:00
George Peter Banyard 1f05966a41 Use new Fast ZPP macros for string|int parar types
Closes GH-5512
2020-05-13 12:07:02 +02:00
George Peter Banyard 0e4c7b3264 utime is always available on Windows
Therefore drop useless preprocessor if check

Closes GH-5563
2020-05-13 12:05:29 +02:00
Xinchen Hui f150b020c0 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  skip when mbstring missing (no warning)
2020-05-13 18:01:16 +08:00
Xinchen Hui 91b5571fcc Fixed #79582 (Crash seen when opcache.jit=1235 and opcache.jit_debug=2) 2020-05-13 18:00:16 +08:00
Remi Collet ebdcdf39ed skip when mbstring missing (no warning) 2020-05-13 10:56:10 +02:00
Gerard Roche ecc0a87ff2 run-tests: extract usage message
Put the usage message near the top of the script,
into a separate function.

Closes GH-5558.
2020-05-13 09:54:55 +02:00
Gerard Roche 10edee7f03 run-tests: cs fixes (cleanup)
I used php-cs-fixer to do the cs fixes. The configuration I used is
posted below. The reason I disabled some of the rules is because they
create too much noise and would make it difficult to review. But please
feel free to close this PR and run the php-cs-fixer yourself.

    <?php

    $config = PhpCsFixer\Config::create();
    $config->setRiskyAllowed(false);
    $config->setRules([
        '@PSR2' => true,
        '@Symfony' => true,
        'array_syntax' => false,
        'binary_operator_spaces' => false,
        'blank_line_before_statement' => false,
        'concat_space' => false,
        'increment_style' => false,
        'phpdoc_align' => false,
        'single_quote' => false,
        'trailing_comma_in_multiline_array' => false,
        'unary_operator_spaces' => false,
        'yoda_style' => false,
    ]);

    $finder = PhpCsFixer\Finder::create();
    $finder->in(getcwd());

    $finder->exclude('Zend');
    $finder->exclude('build');
    $finder->exclude('ext');
    $finder->exclude('pear');
    $finder->exclude('sapi');
    $finder->exclude('scripts');
    $finder->exclude('win32');

    $config->setFinder($finder);

    return $config;

Closes GH-5557.
2020-05-13 09:52:44 +02:00
Dmitry Stogov 7d66e4f323 Replace zend_jit_trace_info.loop_kind by zend_jit_trace_info.flags 2020-05-13 00:56:04 +03:00
Dmitry Stogov 25b7df4283 Fixed invalid index 2020-05-12 23:45:34 +03:00
Dmitry Stogov 2224f63bb5 Prevent usage of uninitialized class entry 2020-05-12 23:34:07 +03:00
George Peter Banyard c0997130ec Fix [-Wundef] warning in PHPDBG SAPI 2020-05-12 22:02:51 +02:00
George Peter Banyard 56698afb6d Fix [-Wundef] warning in CLI SAPI 2020-05-12 22:02:12 +02:00
George Peter Banyard f87743de9f Fix [-Wundef] warning in FPM SAPI 2020-05-12 22:02:03 +02:00
George Peter Banyard 25acc4a6b4 Fix [-Wundef] warning in Zend folder 2020-05-12 22:01:51 +02:00
George Peter Banyard 8e66d22f7e Fix [-Wundef] warning in streams implementation 2020-05-12 22:01:20 +02:00
George Peter Banyard 1df3f97c21 Fix [-Wundef] warning in main folder 2020-05-12 22:01:00 +02:00
Christoph M. Becker 3689807998 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79588: Boolean opcache settings ignore on/off values
2020-05-12 19:50:16 +02:00
Alex Dowad f152fece02 Test setting SplDoublyLinkedList iterator mode to IT_MODE_LIFO 2020-05-12 17:24:35 +02:00
Alex Dowad d4d0852c23 SplDoublyLinkedList uses iteration flags in iterator struct
The 'flags' field in spl_dllist_it was formerly unused. This means that if one started to
iterate over an SplDoublyLinkedList using 'foreach', and then *changed* the iteration mode
halfway, the 'foreach' loop would start iterating in the opposite direction. Probably this
was not what was intended.

Therefore, use the 'flags' field in spl_dllist_it for iteration via 'foreach'. For explicit
iteration using methods like '::next()' and '::current()', continue to use the flags in
the SplDoublyLinkedList object itself.
2020-05-12 17:22:31 +02:00
Alex Dowad 9999e7faa3 Remove useless prototype for spl_dllist_get_iterator 2020-05-12 17:21:21 +02:00
Nikita Popov f83a23e59d Display errors in shutdown function timeout test 2020-05-12 17:14:16 +02:00
Alex Dowad f0960879e4 zend_timeout is not a signal handler function
The 'int dummy' parameter to this function makes it appear that it was intended as a
signal handler, but it is not being used as such. So remove the redundant parameter.
2020-05-12 17:13:46 +02:00
Nikita Popov 53f5cfd99e Drop multi_convert_* APIs
These are no longer used internally, and I'd rather they weren't
used externally either.
2020-05-12 17:10:06 +02:00
Rod Elias 682e2f6c20 Trim trailing whitespaces and fix code style
Closes GH-5554.
2020-05-12 17:00:11 +02:00
Gerard Roche 16f23cd159 run-tests: remove use of FILE_BINARY constant
The FILE_BINARY (and FILE_TEXT) constants are not really valid or useful
constants. It looks like they were added in 5.2.7 and have "no effect,
and are only available for forward compatibility."

See: https://www.php.net/manual/en/filesystem.constants.php

The default value of the file_put_contents() flags parameter is 0 and
FILE_BINARY is set to 0, so removing it doesn't change functionality.

P.S. Maybe those constants should be deprecated or removed in 8.0.

Closes GH-5556.
2020-05-12 16:59:25 +02:00
Nikita Popov f07fbfb8a9 Remove zend_qsort
This has been superseded by zend_sort and is no longer used.
2020-05-12 16:57:53 +02:00
Christoph M. Becker 125682f13a Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test on big-endian architectures
2020-05-12 13:33:06 +02:00
Dmitry Stogov 650ab370c7 Avoid useless manual instruction encoding 2020-05-12 14:24:13 +03:00
Dmitry Stogov 60090adc6a Move EG(vm_interrupt) checks at the end of the trace loops 2020-05-12 13:35:38 +03:00
Christoph M. Becker 9dcf494e36 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79489: .user.ini does not inherit
2020-05-12 11:49:04 +02:00
Christoph M. Becker cdd0a90992 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update NEWS
2020-05-12 11:19:10 +02:00
Remi Collet 107ef83dd6 Merge branch 'PHP-7.4'
* PHP-7.4:
  bump version to 7.2.32-dev
  Update NEWS
2020-05-12 09:19:51 +02:00
Stanislav Malyshev c317c420b0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78876: Long variables cause OOM and temp files are not cleaned
  Fix #78875: Long filenames cause OOM and temp files are not cleaned
  Update NEWS for 7.2.31
  Update CREDITS for PHP 7.2.30
  Update NEWS for PHP 7.2.30
2020-05-11 14:21:25 -07:00
George Peter Banyard 7dd332f110 Refactor mb_substitute_character()
Using the new Fast ZPP API for string|int|null

This also fixes Bug #79448 which was too disruptive to fix in PHP 7.x
2020-05-11 17:30:01 +02:00
Nikita Popov 28af364d2a Deprecate old ReflectionParameter type declaration APIs
This deprecates:

    ReflectionParameter::isArray()
    ReflectionParameter::isCallable()
    ReflectionParameter::getClass()

These APIs have been superseded by ReflectionParameter::getType()
since PHP 7.0. Types introduced since that time are not available
through the old APIs, and their behavior is getting increasingly
confusing. This is how they interact with PHP 8 union types:

 * isArray() will return true if the type is array or ?array,
   but not any other union type
 * Same for isCallable().
 * getClass() will return a class for T|int etc, as long as the
   union only contains a single type. T1|T2 will return null.

This behavior is not particularly reasonable or useful, and will
get more confusing as new type system extensions are added.

Closes GH-5209.
2020-05-11 17:01:40 +02:00
George Peter Banyard 4865592525 Remove old ARG_COUNT() macro
Use ZEND_NUM_ARGS() instead.

Clsoes GH-5551
2020-05-11 16:52:04 +02:00
Christoph M. Becker 43eca196e7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79571: FFI: var_dumping unions may segfault
2020-05-11 16:25:30 +02:00
Christoph M. Becker 6549891602 Update AppVeyor for enchant-2
Cf. <https://github.com/winlibs/enchant/commit/df5a4586e09d67bf2c208c7dfd0517657d06910e>
2020-05-11 16:18:03 +02:00
Nikita Popov 5d93eab620 Don't reset SIGG(running) when calling zend_on_timeout
This is only an internal callback nowadays and does not actually
run any user code. It must be async signal safe.
2020-05-11 15:05:01 +02:00
Nikita Popov 091d53c131 Use standard key behavior in array_column()
array_column() reimplements array key handling in a way that does
not match standard array key behavior in PHP. Avoid this by making
use of the standard API.

Of course, there is a minor backwards compatibilty break here,
e.g. people could be relying on objects getting cast to string
instead of throwing.

Closes GH-5487.
2020-05-11 14:16:24 +02:00
Nikita Popov b111674383 Only use ifunc resolvers if __builtin_cpu_supports+init available
If either of them is not available, the use of zend_cpu_supports()
inside ifunc resolvers may not be safe.
2020-05-11 12:43:38 +02:00
Nikita Popov 5dc9418a97 Reapply "Remove configure checks for supported instruction sets"
I reverted this previously for 7.4 because of bug #78769. Relanding
it now for master, because I still believe that this change is
right, and if it causes complications, those indicate a bug elsewhere.

---

These were checking whether the instruction set is supported by
the host CPU, however they were only used to condition on whether
this instruction set is targeted at all. It would still use dynamic
dispatch (e.g. based on ifunc resolvers) to select the actual
implementation. Whether the target is guaranteed to support the
instruction set without dispatch is determined based on pre-defined
macros like __SSE2__.

This removes the configure-time builtin cpu checks to remove
confusion. Additionally this allows targeting an architecture that
is newer than the host architecture.
2020-05-11 12:22:28 +02:00
Nikita Popov a0abc26ef7 Add get_resource_id() function
Behavior is same as for (int) $resource, just under a clearer
name. Also type-safe, in that the parameter actually needs to
be a resource.

Closes GH-5427.
2020-05-11 12:04:16 +02:00
Xinchen Hui d5d99ce8d1 Merge branch 'sse2_urlencode' of https://github.com/laruence/php-src
* 'sse2_urlencode' of https://github.com/laruence/php-src:
  drop use of extract_epi16
  Use SSE2 instructions do url_encode
2020-05-11 18:02:48 +08:00
Christoph M. Becker 74f3bfc6eb Use supported printf format on Win64
Commit aaa1f90[1] dropped support for the custom `I` specifier, so we
must no longer use it for `ZEND_ADDR_FMT`; otherwise there are
segfaults when printing memory leaks, and maybe elsewhere.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=aaa1f90e3f90c24098fa55a7b868fdca0b89ee25>
2020-05-11 10:49:44 +02:00
Nikita Popov 89b4a46d56 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix default sendmail path when not found during build
2020-05-11 10:46:07 +02:00
Nikita Popov 32b3235287 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't check directory atime in lstat_stat_variation10.phpt test
2020-05-11 10:23:06 +02:00
Nikita Popov 1809714603 Fix use-after-free in sysvsem 2020-05-11 10:21:31 +02:00
Rod Elias 7c2b143778 Add pkg-config to the build list
Closes GH-5550.

[ci skip]
2020-05-11 10:19:18 +02:00
Nikita Popov b452d5923d Fix bug68996.phpt test
The function name gets printed here now, with illegal chars
substituted in the arg. This slipped through previously, because
the test only runs under USE_ZEND_ALLOC=0. We remove that check
as well, because the test behaves the same regardless of which
allocator is used, even if the original bug only reproduces under
USE_ZEND_ALLOC=0.
2020-05-09 11:53:39 +02:00
Xinchen Hui e97a67963c drop use of extract_epi16 2020-05-09 12:28:49 +08:00
Adam Baratz a07e75aa65 Skip test if bigint type is unsupported by active TDS version 2020-05-08 15:13:40 -04:00
Adam Baratz bba9bc6863 Set non-default error mode to maintain expected behavior 2020-05-08 14:45:37 -04:00
Adam Baratz e295266f8f Update FreeTDS version detection related to bug #72969 2020-05-08 14:34:00 -04:00
Máté KocsisandGeorge Peter Banyard 4a816584a4 Make float to string casts locale-independent
From now on, float to string casting will always behave locale-independently.
RFC: https://wiki.php.net/rfc/locale_independent_float_to_string
Closes GH-5224

Co-authored-by: George Peter Banyard <girgias@php.net>
2020-05-08 10:52:23 +02:00
Xinchen Hui af112f6572 Use SSE2 instructions do url_encode 2020-05-08 16:32:43 +08:00
Dmitry Stogov 6e2cd97b43 cleanup 2020-05-08 10:07:55 +03:00
Dmitry Stogov c34d29db33 Change parameter meaning. 2020-05-08 01:24:02 +03:00
Dmitry Stogov dcedc31979 Use proper "cost" 2020-05-08 00:56:03 +03:00
Dmitry Stogov ef45d4d698 Avoid loop throgh side_exit from the first trace instruction. 2020-05-08 00:48:17 +03:00
Dmitry Stogov 5d9063a546 Fixed tracing JIT for CALL VM without global register variables 2020-05-07 23:41:48 +03:00
Nikita Popov 2414b3d775 Ensure ctype_string is NULL for C locale
We already document that this is the case, but currently it's only
true if setlocale() has not been called. Make sure ctype_string is
always NULL, even with an explicit "C" locale call, so we can
more efficiently check whether we are in the "C" locale.

Closes GH-5542.
2020-05-07 21:26:13 +02:00
Nikita Popov d38f819647 Fix test file encoding
The mb_http_input_pass.phpt was intended to use the same encoding
as mb_http_input.phpt, not UTF-8.
2020-05-07 21:18:49 +02:00
Dmitry Stogov 9af2f0fa78 More accurate tracing JIT for RETURN with unknown return address 2020-05-07 22:01:59 +03:00
Nikita Popov 3f76947303 Rename locale_string to ctype_string
To make it more obvious that this only refers to the LC_CTYPE
locale.
2020-05-07 18:45:03 +02:00
Nikita Popov 5ef65dd114 Remove redundant htmlentities() tests
Test 04 and 15 are the same as 02 and 03, just for different
encodings. They don't add value, but their execution depends
on available locales, so they're easy to miss...
2020-05-07 18:38:25 +02:00
Xinchen Hui 5d8cf36022 Folder marks 2020-05-07 23:03:25 +08:00
Nikita Popov 65e2a05a17 Really fix test case 2020-05-07 16:51:05 +02:00
Christoph M. Becker fce0cd4a88 Fix test case 2020-05-07 16:47:38 +02:00
Tyson Andre 9f8f84adbc Evaluate str_starts_with and str_ends_with on constants
When both arguments are strings,
this is guaranteed not to emit notices.

Closes GH-5539
2020-05-07 16:24:03 +02:00
Nikita Popov 4a512625a0 Don't respect mbstring.internal_encoding in htmlentities()
htmlentities() has nothing to do with mbstring and should not
depend on its ini settings. It should only respect the global
default_charset and internal_encoding settings. This is exactly
why they were introduced...
2020-05-07 15:54:54 +02:00
Nikita Popov c50cfc4d3d Add quiet parameter to internal HTML entities API
In some places, we need to make sure that no warnings are thrown
due to unknown encoding. The error reporting code tried to avoid
this by determining a "safe charset", but this introduces subtle
discrepancies in which charset is picked (normally
internal_encoding takes precedence). Avoid this by suppressing
the warning in the first place.

While here, use the fallback logic to print error messages with
substitution characters more consistently, to avoid skipping
parts of the error message entirely.
2020-05-07 15:46:08 +02:00
Nikita Popov d6ac8b236f Clean up determine_charset() implementation
And drop code related to locale-based charset guessing,
which is no longer in use.
2020-05-07 14:58:24 +02:00
Nikita Popov 481b7421f3 Throw warning if invalid internal_encoding ini is specified 2020-05-07 14:44:13 +02:00
Dmitry Stogov 98acdbff18 Prevent taking side traces for exceptional cases. Always exit to VM interpreter. 2020-05-07 12:49:01 +03:00
Nikita Popov 217f6013b3 Remove no_language from mbfl_string
This is not actually used for anything and just causes confusion.
2020-05-07 11:36:57 +02:00
Nikita Popov 226d9dd30a Only allow "pass" as input/output encoding
"pass" is not a real encoding, it just means "don't perform any
conversion". Using it as an internal encoding or passing it to
any of the mbstring() function will not work (and on master commonly
assert).
2020-05-07 11:19:14 +02:00
Máté Kocsis b67f699dcd Rename the recently introduced Sysvsem class to SysvSemaphore 2020-05-07 10:21:58 +02:00
Nikita Popov 5bfa9598f4 Return false from failed mb_convert_variables()
If we fail to detect the encoding return false, just like
mb_convert_encoding() does, and the implementation here clearly
intended. Previously the "pass" pseudo-incoding was returned.
2020-05-07 10:16:46 +02:00
Christoph M. Becker 1a95ed0b33 Enable test on Windows 2020-05-07 09:20:15 +02:00
Xinchen Hui dd9d0a96d1 Fixed false alarm about tmp_name maybe unitialized 2020-05-07 14:16:02 +08:00
Dmitry Stogov 7977cd1c19 Fixed comment 2020-05-07 09:05:33 +03:00
Nikita Popov 71f48260af Fix assertion failure when failing to detect encoding
Looks like prior to 7.3 this just passed the original string
through. Since 7.3 it returns false. Let's stick with that
behavior.
2020-05-06 22:56:01 +02:00
Dmitry Stogov 9d869f24d4 Avoid Program Counter guard in side trace started from Fake Init Fcall guard. 2020-05-06 23:16:45 +03:00
George Peter Banyard 038502b92a Use int|string Fast ZPP macro in Reflection
Moreover, throw a more appropriate ValueError in case the integer
position provided is less than 0.

Closes GH-5513
2020-05-06 21:51:59 +02:00
Dmitry Stogov b63eff17ff Initial support for IS_INDIRECT. Avoid type guards for IS_INDIRECT. 2020-05-06 22:27:38 +03:00
Máté Kocsis bce8c8fb27 Promote warning to exception in ZipArchive::extractTo()
Closes GH-5516
2020-05-06 19:22:52 +02:00
Máté Kocsis 650da66e2d Fix UNKNOWN default values in ext/spl 2020-05-06 19:15:39 +02:00
Máté Kocsis 35a10fb8e8 Fix UNKNOWN default values in ext/sqlite3 2020-05-06 19:15:39 +02:00
Máté Kocsis 60412c37ae Fix UNKNOWN default values in ext/xml 2020-05-06 19:15:39 +02:00
Máté Kocsis 89d1707587 Fix UNKNOWN default values in ext/xsl 2020-05-06 19:15:38 +02:00
Máté Kocsis daa5b26456 Fix UNKNOWN default values in ext/zip 2020-05-06 19:15:34 +02:00
Máté Kocsis 78dda268eb Fix ZPP order in ext/zip 2020-05-06 19:14:36 +02:00
George Peter Banyard 389c2b4303 Drop BF_ASM constant as it's always 0
Closes GH-5531
2020-05-06 17:55:32 +02:00
Christoph M. Becker 822c489961 Remove out-dated comments 2020-05-06 17:25:49 +02:00
Máté Kocsis eab54d2382 Convert resource to object in ext/sysvsem
Closes GH-5508
2020-05-06 15:42:41 +02:00
Dmitry Stogov 776b1aefc8 Careful cleanup 2020-05-06 16:26:36 +03:00
Remi Collet f987219c69 add myself as enchant maintainer 2020-05-06 13:18:35 +02:00
Christoph M. Becker c1ad9163b8 Fix enchant stub 2020-05-06 13:16:50 +02:00
Remi Collet 5f5dd994d4 enchant: bump license version 2020-05-06 13:13:19 +02:00
Nikita Popov 718e55c3e0 Add zend_array_release() function
To complement zend_string_release() and zend_object_release().
2020-05-06 11:27:20 +02:00
Nikita Popov e41f764b5c Revert "Move declaration at top of the block"
This reverts commit b56f203850.

We use C99 now, this is not needed anymore.
2020-05-06 09:42:58 +02:00
Xinchen Hui b56f203850 Move declaration at top of the block 2020-05-06 14:01:56 +08:00
George Peter Banyard ba45addb38 Use correct variable
This seems to stem from a copy paste, however there is no object variable in this function
2020-05-05 22:12:31 +02:00
Máté Kocsis 3ebce8e9fc Fix UNKNOWN default values in various extensions
Closes GH-5514
2020-05-05 19:08:20 +02:00
Nikita Popov 5bc1e224db Make numeric operations on resources, arrays and objects type errors
RFC: https://wiki.php.net/rfc/arithmetic_operator_type_checks

Closes GH-5331.
2020-05-05 16:11:13 +02:00
William Hudgins 31fb6a08b3 Add str_starts_with() and str_ends_with()
RFC: https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions

Closes GH-5300.
2020-05-05 16:03:47 +02:00
Christoph M. Becker e749db4047 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79566: Private SHM is not private on Windows
2020-05-05 11:41:31 +02:00
Nikita Popov 901417f0ae Fix mbfl default allocators
Forgot to remove the persistent allocators from here.
2020-05-04 23:41:39 +02:00
Nikita Popov a0cae937c5 Spec mbfl allocators as infallible
And remove all NULL checks.
2020-05-04 23:19:07 +02:00
Nikita Popov 7d4ff8443e Remove persistent allocators from libmbfl
These functions are not used, and I don't think we have any plans
to ever use them.
2020-05-04 23:19:07 +02:00
Christoph M. Becker 6086343a91 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79561: dns_get_record() fails with DNS_ALL
2020-05-04 23:02:00 +02:00
AllenJB 50752401a7 Change the default PDO error mode to exceptions
According to <https://www.php.net/manual/en/pdo.error-handling.php>.
2020-05-04 22:51:47 +02:00
Nikita Popov 8ffbd4653e Perform isupper check using sse2 as well
Rather than just vectorizing the lowering, also vectorize the
check for uppercase characters, using the same method.
2020-05-04 19:19:54 +02:00
Nikita Popov 4c24545aab Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79548
2020-05-04 16:30:34 +02:00
Nikita Popov 2dc4481fa9 Extract one more function from proc_open() implementation 2020-05-04 15:24:23 +02:00
Alex Dowad 51b0494e2f Clean up proc_open() implementation
Closes GH-5507.
2020-05-04 15:04:58 +02:00
Nikita Popov 66d57bf8d6 Remove unused is_persistent flag
I dropped the assignment to it before, but did not drop the
struct member.
2020-05-04 14:59:35 +02:00
Nikita Popov f55b413d60 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79535
2020-05-04 14:52:42 +02:00
Nikita Popov 7561f91796 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix i386 build on Azure
2020-05-04 14:35:33 +02:00
George Peter Banyard 8d346f7679 Use ZPP int|string and add ValueError for Windows codepages
Closes GH-5517
2020-05-04 12:44:54 +02:00
Christoph M. Becker 2787d0f8dd Merge branch 'PHP-7.4'
* PHP-7.4:
  Add basic sapi_windows_cp_conv() test
2020-05-04 11:52:01 +02:00
Christoph M. Becker 54cf9a26c1 Use libenchant2 if available on Windows
This is basically the same as commit 3427545[1], but for Windows.

[1] <http://git.php.net/?p=php-src.git;a=commitdiff;h=342754575237da912874f781a24eefe76434ce5a>
2020-05-04 11:27:00 +02:00
Remi Collet 3427545752 Use libenchant-2 when available 2020-05-04 08:27:31 +02:00
Christoph M. Becker 69888c3ff1 Fix #79467: data:// wrappers are writable
Despite the docs claiming that data: wrappers would not be writable[1],
they are implemented as writing to a memory stream.  That does not seem
to be particularly sensible, so we disallow writing altogether.

[1] <https://www.php.net/manual/en/wrappers.data.php#refsect1-wrappers.data-options>
2020-05-03 12:19:37 +02:00
George Peter Banyard 34f727e637 Use ZPP check for string|int|null arguments in array_column() 2020-05-02 19:50:51 +02:00
George Peter Banyard 7b74fc7a7b Add Fast ZPP string|int type check 2020-05-02 19:50:51 +02:00
Christoph M. Becker 5a628402a0 Don't raise bogus warning if writing completely failed 2020-05-02 16:32:29 +02:00
Nikita Popov ba54a46df4 Remove is_persistent flag from proc_open implementation
We don't support persistent proc_open handles and have no plan
to suppor them. The mixture of persistent and non-persistent
allocations functions in this code is somewhat confusing to read.
2020-05-02 15:33:29 +02:00
Máté Kocsis ffcc8135e2 Convert UNKNOWN default values to null in ext/date
Closes GH-5509
2020-05-02 11:05:37 +02:00
Máté Kocsis 089d8cb03c Convert UNKNOWN default values to null in ext/calendar 2020-05-02 11:05:27 +02:00
Máté Kocsis 8a41c9e025 Convert UNKNOWN default values to null in ext/bcmath 2020-05-02 11:05:19 +02:00
Tyson Andre d63eca285a Fix miscellaneous typos in code comments/var names
Closes GH-5501
2020-05-01 15:49:05 +02:00
Máté Kocsis 31a626cf7e Remove the deprecated is_real() function
Closes GH-5506
2020-05-01 15:33:58 +02:00
Christoph M. Becker 1d20443679 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79528: Different object of the same xml between 7.4.5 and 7.4.4
2020-05-01 12:42:09 +02:00
Alex Dowad 7b32d176d2 Avoid spurious failures of MySQL INSERT packet overflow test
This test creates a MySQL table called 'test'. In several cases, I have seen a spurious
test failure (in CI) with an error message saying: "table 'test' already exists".

It may be that another test had used a table with the same name and not cleaned it out
correctly. Or maybe we have multiple tests running in parallel in some CI environments,
or the same test DB being used for multiple runs of the test suite.

In any case, change the table name so it is exclusive to this test case only. Also, if
the test table exists at the beginning of the test, drop it.

Closes GH-5479
2020-05-01 12:25:42 +02:00
Alex Dowad 86ed93c230 Try to make regression test for Bug #69900 consistent
It has been observed that in rare cases, this regression test has spurious failures in CI.
Try increasing the threshold for failure a bit and see if this makes it pass consistently.
2020-05-01 12:25:30 +02:00
Tyson Andre 54febdbc7d Fix other typos in param name/code comments
Closes GH-5502
2020-05-01 12:23:16 +02:00
Tyson Andre 1dbf923866 [skip ci] Fix a typo in UPGRADING
Confirmed that php_zip.c checks for `"enc_password"`

Closes GH-5503
2020-05-01 12:22:24 +02:00
Dmitry Stogov 968c31a43c Better handling of IS_UNDEF variables 2020-04-30 17:07:35 +03:00
Dmitry Stogov 3c04ce43ed Replace ZEND_ASSERT() by conditional compilation abort.
Prevent endless loop through ESCAPE code.
2020-04-30 15:32:01 +03:00
Xinchen Hui f5fe4c3c38 Use ascii lowercase if locale is default C 2020-04-30 18:43:09 +08:00
Nikita Popov c4ad8beaa8 Do not inherit LC_CTYPE locale from environment
Treatment of locales in PHP is currently inconsistent: The LC_ALL
locale is set to "C", as is standard behavior on program startup.
The LC_CTYPE locale is set to "", which will inherit it from the
environment. However, the inherited LC_CTYPE locale will only be
used in some cases, while in other cases it is necessary to perform
an explicit setlocale() call in PHP first. This is the case for
the locale-sensitive handling in the PCRE extension.

Make things consistent by *never* inheriting any locales from the
environment. LC_ALL, including LC_CTYPE will be "C" on startup.
A locale can be set or inherited through an explicit setlocale()
call, at which point the behavior will be fully consistent and
predictable.

Closes GH-5488.
2020-04-30 10:22:51 +02:00
Nikita Popov 707cb18276 Revert "Insert one more debug output"
This reverts commit 45cb42166d.
2020-04-30 09:55:25 +02:00
Nikita Popov 53eee290b6 Completely remove disabled functions from function table
Currently, disabling a function only replaces the internal
function handler with one that throws a warning, and a few
places in the engine special-case such functions, such as
function_exists. This leaves us with a Schrödinger's function,
which both does not exist (function_exists returns false) and
does exist (you cannot define a function with the same name).
In particular, this prevents the implementation of robust
polyfills, as reported in https://bugs.php.net/bug.php?id=79382:

    if (!function_exists('getallheaders')) {
        function getallheaders(...) { ... }
    }

If getallheaders() is a disabled function, this code will break.

This patch changes disable_functions to remove the functions from
the function table completely. For all intents and purposes, it
will look like the function does not exist.

This also renders two bits of PHP functionality obsolete and thus
deprecated:

 * ReflectionFunction::isDisabled(), as it will no longer be
   possible to construct the ReflectionFunction of a disabled
   function in the first place.
 * get_defined_functions() with $exclude_disabled=false, as
   get_defined_functions() now never returns disabled functions.

Fixed bug #79382.

Closes GH-5473.
2020-04-30 09:53:57 +02:00
Christoph M. Becker 8cb237345a Revert "Show eventual output of clean sections"
This reverts commit 5eb4ab07f2.
The temporary hack has served its purpose.
2020-04-30 09:51:10 +02:00
Remi Collet 1b98151734 doc enchant changes 2020-04-30 09:40:46 +02:00
Remi Collet 66d42e9884 remove deprecated call and deprecate function to be removed in libenchant v2
add LIBENCHANT_VERSION constant
2020-04-30 09:32:00 +02:00
Alex Dowad 8ddaf13ed3 Code tweaks: Remove unneeded semicolons 2020-04-29 23:17:40 +02:00
Nikita Popov 90705d44e3 Treat invalid characters in basename() consistently
Always simply ignore (pass through) them. Previously the behavior
depended on where the invalid character occurred, as it messed
up the state management.
2020-04-29 18:43:09 +02:00
Nikita Popov d50a12629d Clean up naming in basename() implementation 2020-04-29 18:43:09 +02:00
Dmitry Stogov 65934d31d1 Improved tracing JIT for nested calls 2020-04-29 18:24:18 +03:00
Nikita Popov 0e0c608ce0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce test parallelism on ARM64 CI
2020-04-29 15:16:36 +02:00
Remi Collet c3d6a0ac02 manage ZEND_DEP_FALIAS in gen_stub 2020-04-29 14:37:06 +02:00
Christoph M. Becker daaaf2b4ff Merge branch 'PHP-7.4'
* PHP-7.4:
  Pass worker ID to clean scripts
2020-04-29 13:33:32 +02:00
Xinchen Hui acee66ae8c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79536 (zend_clear_exception prevent exception's destructor to be called).
2020-04-29 18:59:01 +08:00
Dmitry Stogov faa57abe71 white space fixes 2020-04-29 13:29:01 +03:00
Nikita Popov 17d763ff47 JIT: Save opline before calling zend_timeout
tests/045.phpt started segfaulting, because the opline is not set
when zend_timeout is invoked.
2020-04-29 10:58:39 +02:00
Christoph M. Becker 38ecfe0245 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79532: sizeof off_t can be wrong
2020-04-29 10:43:35 +02:00
Nikita Popov 533669f7c4 Remove redundant addref+dtor 2020-04-29 10:27:35 +02:00
Nikita Popov dad5110860 Remove dead code
As pointed out by Girgias, index is always non-NULL here.
2020-04-29 10:22:11 +02:00
Nikita Popov ef72b8f4ac Merge branch 'PHP-7.4'
* PHP-7.4:
  Make 045.phpt busy wait
2020-04-29 10:14:35 +02:00
Nikita Popov 8e411fe54e Revert "Merge branch 'sse2_strtolower' of https://github.com/laruence/php-src"
This reverts commit 5a6373f904, reversing
changes made to 45cb42166d.

This breaks strtolower-win32.phpt.
2020-04-29 09:49:01 +02:00
Christoph M. Becker 0b04b9347f Enclose contents of CLEAN sections in PHP tags
We also place the CLEAN sections before EXPECT(F), and remove
extraneous clean-ups.
2020-04-29 09:07:53 +02:00
Xinchen Hui 5a6373f904 Merge branch 'sse2_strtolower' of https://github.com/laruence/php-src
* 'sse2_strtolower' of https://github.com/laruence/php-src:
  Use ascii lowercase if locale is default C
2020-04-29 12:26:06 +08:00
Nikita Popov 45cb42166d Insert one more debug output 2020-04-28 21:06:32 +02:00
Gabriel Caruso 34c460f329 Check __set_state structure
Fix Bug #79521.

Closes GH-5462.
2020-04-28 17:02:03 +02:00
Nikita Popov f545ee2c6c Allow optional trailing comma in parameter list
RFC: https://wiki.php.net/rfc/trailing_comma_in_parameter_list

Closes GH-5306.
2020-04-28 16:11:08 +02:00
Christoph M. Becker 5eb4ab07f2 Show eventual output of clean sections
This is a hack to investigate why mysqli_insert_packet_overflow.phpt
intermittently fails on AppVeyor, and will be reverted in due time.
See <https://github.com/php/php-src/pull/5447#issuecomment-620508790>.
2020-04-28 16:08:17 +02:00
Nikita Popov 88a701aa02 Less conservative fix
I think it's reasonable to assume that the only possible types
are those that are declared, and null, because null is what
return_value is initialized to.
2020-04-28 15:55:02 +02:00
Nikita Popov 0da38cda6e Fix JIT segfaults in FFI tests
Conservative fix that just disables this optimization.
2020-04-28 15:43:52 +02:00
Nikita Popov dc1574e0a0 Fix ifunc resolver return type warning 2020-04-28 15:25:35 +02:00
Nikita Popov bbda71b63d Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fix #79065: DOM classes do not expose properties to Reflection"
2020-04-28 15:10:23 +02:00
Nikita Popov 7d1c806491 Clarify that FFI::cdef() does not return NULL 2020-04-28 14:46:04 +02:00
Dmitry Stogov 2baaec108a Merge branch 'libtool-fix'
* libtool-fix:
  Fix libtool to provide a simple way to generate only "shared" object files or libraries.
2020-04-28 13:06:47 +03:00
Dmitry Stogov 790a08c885 Improve JIT code for FCALL with "fake" INIT and avoid fcall_guard if possible. 2020-04-28 13:05:56 +03:00
Christoph M. Becker d6f3a2ae87 Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump version
2020-04-28 09:14:45 +02:00
Xinchen Hui d906eb23f6 Fixed bug #79526 (__sleep error message doesn't include the name of the class) 2020-04-28 14:17:21 +08:00
Xinchen Hui acb1fa5240 Merge branch 'filesize/value-errors' of https://github.com/carusogabriel/php-src
* 'filesize/value-errors' of https://github.com/carusogabriel/php-src:
  Reduce code duplication using for loop
2020-04-28 13:55:44 +08:00
Xinchen Hui aaedcb116c Merge branch 'tests/use-simpler-expect-section' of https://github.com/carusogabriel/php-src
* 'tests/use-simpler-expect-section' of https://github.com/carusogabriel/php-src:
  Use EXPECT instead of EXPECTF when possible

EXPECTF logic in run tests is considerable, so lets avoid it
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch tests/use-simpler-expect-section
# Your branch is behind 'fork/tests/use-simpler-expect-section' by 1 commit, and can be fast-forwarded.
#   (use "git pull" to update your local branch)
#
# Changes to be committed:
#	modified:   Zend/tests/005.phpt
#	modified:   Zend/tests/bug27669.phpt
#	modified:   Zend/tests/bug51827.phpt
#	modified:   Zend/tests/bug63206.phpt
#	modified:   Zend/tests/bug63206_1.phpt
#	modified:   Zend/tests/bug63206_2.phpt
#	modified:   Zend/tests/incompat_ctx_user.phpt
#	modified:   Zend/tests/instanceof_001.phpt
#	modified:   Zend/tests/unexpected_ref_bug.phpt
#	modified:   ext/date/tests/012.phpt
#	modified:   ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt
#	modified:   ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
#	modified:   ext/date/tests/date_parse_001.phpt
#	modified:   ext/date/tests/date_parse_error.phpt
#	modified:   ext/date/tests/gmmktime_basic.phpt
#	modified:   ext/date/tests/mktime_error.phpt
#	modified:   ext/date/tests/timezone_abbreviations_list_basic1.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic.phpt
#	modified:   ext/filter/tests/007.phpt
#	modified:   ext/filter/tests/008.phpt
#	modified:   ext/filter/tests/010.phpt
#	modified:   ext/hash/tests/hash_hkdf_edges.phpt
#	modified:   ext/hash/tests/hash_hmac_file_basic.phpt
#	modified:   ext/json/tests/json_last_error_msg_error.phpt
#	modified:   ext/libxml/tests/bug76777.phpt
#	modified:   ext/pcre/tests/preg_replace_error2.phpt
#	modified:   ext/pcre/tests/split2.phpt
#	modified:   ext/phar/tests/phar_isvalidpharfilename.phpt
#	modified:   ext/phar/tests/pharfileinfo_chmod.phpt
#	modified:   ext/phar/tests/pharfileinfo_setmetadata.phpt
#	modified:   ext/phar/tests/stat2_5.3.phpt
#	modified:   ext/posix/tests/posix_getgrgid_error.phpt
#	modified:   ext/posix/tests/posix_getpgid_error.phpt
#	modified:   ext/posix/tests/posix_getpwuid_error.phpt
#	modified:   ext/posix/tests/posix_getsid_error.phpt
#	modified:   ext/posix/tests/posix_initgroups.phpt
#	modified:   ext/posix/tests/posix_kill_error.phpt
#	modified:   ext/posix/tests/posix_strerror_error.phpt
#	modified:   ext/reflection/tests/ReflectionClass_hasProperty_002.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_getClosure_error.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt
#	modified:   ext/reflection/tests/ReflectionObject_getName_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_setValue_error.phpt
#	modified:   ext/session/tests/bug79221.phpt
#	modified:   ext/session/tests/session_cache_limiter_error.phpt
#	modified:   ext/spl/tests/bug61347.phpt
#	modified:   ext/spl/tests/fileobject_005.phpt
#	modified:   ext/spl/tests/iterator_045.phpt
#	modified:   ext/spl/tests/regexIterator_setMode_error.phpt
#	modified:   ext/spl/tests/spl_heap_is_empty_basic.phpt
#	modified:   ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt
#	modified:   ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt
#	modified:   ext/standard/tests/array/005.phpt
#	modified:   ext/standard/tests/array/009.phpt
#	modified:   ext/standard/tests/array/array_diff_assoc_error.phpt
#	modified:   ext/standard/tests/array/array_diff_error.phpt
#	modified:   ext/standard/tests/array/array_diff_key_error.phpt
#	modified:   ext/standard/tests/array/array_filter.phpt
#	modified:   ext/standard/tests/array/array_filter_variation10.phpt
#	modified:   ext/standard/tests/array/array_key_exists_variation3.phpt
#	modified:   ext/standard/tests/array/array_map_error.phpt
#	modified:   ext/standard/tests/array/array_merge.phpt
#	modified:   ext/standard/tests/array/array_push.phpt
#	modified:   ext/standard/tests/array/array_slice.phpt
#	modified:   ext/standard/tests/array/array_unshift.phpt
#	modified:   ext/standard/tests/array/array_walk.phpt
#	modified:   ext/standard/tests/array/array_walk_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive1.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_variation7.phpt
#	modified:   ext/standard/tests/array/array_walk_variation7.phpt
#	modified:   ext/standard/tests/array/uasort_variation8.phpt
#	modified:   ext/standard/tests/array/usort_variation8.phpt
#	modified:   ext/standard/tests/assert/assert_variation.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_1.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_2.phpt
#	modified:   ext/standard/tests/file/basename.phpt
#	modified:   ext/standard/tests/file/fscanf.phpt
#	modified:   ext/standard/tests/file/fscanf_variation10.phpt
#	modified:   ext/standard/tests/file/is_dir_variation3.phpt
#	modified:   ext/standard/tests/file/is_executable_error.phpt
#	modified:   ext/standard/tests/file/is_executable_variation3.phpt
#	modified:   ext/standard/tests/file/is_file_variation3.phpt
#	modified:   ext/standard/tests/file/is_readable_error.phpt
#	modified:   ext/standard/tests/file/is_readable_variation3.phpt
#	modified:   ext/standard/tests/file/is_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/file/is_writable_error.phpt
#	modified:   ext/standard/tests/file/is_writable_variation3.phpt
#	modified:   ext/standard/tests/file/move_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/general_functions/get_include_path_basic.phpt
#	modified:   ext/standard/tests/general_functions/include_path.phpt
#	modified:   ext/standard/tests/general_functions/is_array.phpt
#	modified:   ext/standard/tests/general_functions/is_bool.phpt
#	modified:   ext/standard/tests/general_functions/is_float_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_int_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_null.phpt
#	modified:   ext/standard/tests/general_functions/is_numeric.phpt
#	modified:   ext/standard/tests/general_functions/is_object.phpt
#	modified:   ext/standard/tests/general_functions/is_scalar.phpt
#	modified:   ext/standard/tests/general_functions/is_string.phpt
#	modified:   ext/standard/tests/general_functions/ob_get_length_basic.phpt
#	modified:   ext/standard/tests/general_functions/php_uname_error.phpt
#	modified:   ext/standard/tests/general_functions/print_r.phpt
#	modified:   ext/standard/tests/general_functions/print_r_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_dump_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_export-locale.phpt
#	modified:   ext/standard/tests/image/image_type_to_extension.phpt
#	modified:   ext/standard/tests/math/lcg_value_basic.phpt
#	modified:   ext/standard/tests/network/inet.phpt
#	modified:   ext/standard/tests/network/ip_x86_64.phpt
#	modified:   ext/standard/tests/random/random_int.phpt
#	modified:   ext/standard/tests/serialize/bug45706.phpt
#	modified:   ext/standard/tests/streams/bug61115.phpt
#	modified:   ext/standard/tests/streams/bug78662.phpt
#	modified:   ext/standard/tests/streams/stream_set_timeout_error.phpt
#	modified:   ext/standard/tests/strings/chr_error.phpt
#	modified:   ext/standard/tests/strings/fprintf_error.phpt
#	modified:   ext/standard/tests/strings/htmlentities24.phpt
#	modified:   ext/standard/tests/strings/htmlspecialchars.phpt
#	modified:   ext/standard/tests/strings/ltrim.phpt
#	modified:   ext/standard/tests/strings/metaphone.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic1.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic3.phpt
#	modified:   ext/standard/tests/strings/printf_error.phpt
#	modified:   ext/standard/tests/strings/rtrim.phpt
#	modified:   ext/standard/tests/strings/soundex.phpt
#	modified:   ext/standard/tests/strings/sprintf_variation15.phpt
#	modified:   ext/standard/tests/strings/sscanf_error.phpt
#	modified:   ext/standard/tests/strings/str_ireplace.phpt
#	modified:   ext/standard/tests/strings/stristr.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation1.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation2.phpt
#	modified:   ext/standard/tests/strings/strtolower.phpt
#	modified:   ext/standard/tests/strings/strtoupper1.phpt
#	modified:   ext/standard/tests/strings/strval_error.phpt
#	modified:   ext/standard/tests/strings/substr.phpt
#	modified:   ext/standard/tests/strings/trim1.phpt
#	modified:   ext/standard/tests/strings/vfprintf_error1.phpt
#	modified:   ext/standard/tests/time/strptime_error.phpt
#	modified:   ext/tokenizer/tests/001.phpt
#	modified:   ext/xmlreader/tests/static.phpt
#	modified:   ext/xmlwriter/tests/bug41326.phpt
#	modified:   tests/output/stream_isatty_err.phpt
#	modified:   tests/output/stream_isatty_in-err.phpt
#	modified:   tests/output/stream_isatty_in-out-err.phpt
#	modified:   tests/output/stream_isatty_in-out.phpt
#	modified:   tests/output/stream_isatty_out-err.phpt
#	modified:   tests/output/stream_isatty_out.phpt
#
# Changes not staged for commit:
#	modified:   run-tests.php
#
# ------------------------ >8 ------------------------
# Do not modify or remove the line above.
# Everything below it will be ignored.
diff --git a/Zend/tests/005.phpt b/Zend/tests/005.phpt
index f4abfb6c51..413f3205ad 100644
--- a/Zend/tests/005.phpt
+++ b/Zend/tests/005.phpt
@@ -13,7 +13,7 @@ var_dump(strcasecmp("01", "01"));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 int(0)
 int(-3)
 int(-1)
diff --git a/Zend/tests/bug27669.phpt b/Zend/tests/bug27669.phpt
index 7067c23e0d..9cd845e337 100644
--- a/Zend/tests/bug27669.phpt
+++ b/Zend/tests/bug27669.phpt
@@ -10,5 +10,5 @@ Bug #27669 (PHP 5 didn't support all possibilities for calling static methods dy
     $y[0] = 'hello';
     A::{$y[0]}();
 ?>
---EXPECTF--
+--EXPECT--
 Hello World
diff --git a/Zend/tests/bug51827.phpt b/Zend/tests/bug51827.phpt
index 6c3d721716..1a2d9bdf39 100644
--- a/Zend/tests/bug51827.phpt
+++ b/Zend/tests/bug51827.phpt
@@ -13,7 +13,7 @@ register_shutdown_function('ABC');
 register_shutdown_function('exploDe');
 
 ?>
---EXPECTF--
+--EXPECT--
 int(1)
 
 Fatal error: Uncaught ArgumentCountError: explode() expects at least 2 parameters, 0 given in [no active file]:0
diff --git a/Zend/tests/bug63206.phpt b/Zend/tests/bug63206.phpt
index dc7bb1fd1d..6aba55eca1 100644
--- a/Zend/tests/bug63206.phpt
+++ b/Zend/tests/bug63206.phpt
@@ -22,7 +22,7 @@ set_error_handler(function() {
 $triggerNotice1++;
 $triggerNotice2++;
 ?>
---EXPECTF--
+--EXPECT--
 Second handler
 Internal handler
 Second handler
diff --git a/Zend/tests/bug63206_1.phpt b/Zend/tests/bug63206_1.phpt
index f08f913824..d054211638 100644
--- a/Zend/tests/bug63206_1.phpt
+++ b/Zend/tests/bug63206_1.phpt
@@ -22,5 +22,5 @@ restore_error_handler();
 
 $triggerNotice++;
 ?>
---EXPECTF--
+--EXPECT--
 Second handler
diff --git a/Zend/tests/bug63206_2.phpt b/Zend/tests/bug63206_2.phpt
index 7a2bf38543..a4a67f577e 100644
--- a/Zend/tests/bug63206_2.phpt
+++ b/Zend/tests/bug63206_2.phpt
@@ -22,5 +22,5 @@ restore_exception_handler();
 
 throw new Exception();
 ?>
---EXPECTF--
+--EXPECT--
 Second handler
diff --git a/Zend/tests/incompat_ctx_user.phpt b/Zend/tests/incompat_ctx_user.phpt
index 8c7461e4f7..3fe0456175 100644
--- a/Zend/tests/incompat_ctx_user.phpt
+++ b/Zend/tests/incompat_ctx_user.phpt
@@ -16,5 +16,5 @@ try {
     echo "Exception: " . $e->getMessage() . "\n";
 }
 ?>
---EXPECTF--
+--EXPECT--
 Exception: Non-static method A::foo() cannot be called statically
diff --git a/Zend/tests/instanceof_001.phpt b/Zend/tests/instanceof_001.phpt
index 27170420f0..02b7d59baf 100644
--- a/Zend/tests/instanceof_001.phpt
+++ b/Zend/tests/instanceof_001.phpt
@@ -17,7 +17,7 @@ var_dump($c[0] instanceof stdClass);
 var_dump(@$inexistent instanceof stdClass);
 
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 bool(true)
 bool(true)
diff --git a/Zend/tests/unexpected_ref_bug.phpt b/Zend/tests/unexpected_ref_bug.phpt
index 0d78410d1a..172b1e6224 100644
--- a/Zend/tests/unexpected_ref_bug.phpt
+++ b/Zend/tests/unexpected_ref_bug.phpt
@@ -15,5 +15,5 @@ $my_var = str_repeat("A", 64);
 $data = call_user_func_array("str_replace", array(&$my_var, new Test(), "foo"));
 echo "Done.\n";
 ?>
---EXPECTF--
+--EXPECT--
 Done.
diff --git a/ext/date/tests/012.phpt b/ext/date/tests/012.phpt
index ee8faf1c00..0997ef047c 100644
--- a/ext/date/tests/012.phpt
+++ b/ext/date/tests/012.phpt
@@ -13,7 +13,7 @@ var_dump(date_isodate_set($dto, 2006, 100, 15));
 var_dump($dto->format("Y/m/d H:i:s"));
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 object(DateTime)#1 (3) {
   ["date"]=>
   string(26) "2006-01-23 00:00:00.000000"
diff --git a/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt b/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt
index 715ea63dc9..f96753b019 100644
--- a/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt
+++ b/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt
@@ -14,6 +14,6 @@ try {
     echo $exception->getMessage(), "\n";
 }
 ?>
---EXPECTF--
+--EXPECT--
 DatePeriod::__construct(): The recurrence count '0' is invalid. Needs to be > 0
 DatePeriod::__construct(): The recurrence count '-1' is invalid. Needs to be > 0
diff --git a/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt b/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
index cb948e9df5..670dcb2ee3 100644
--- a/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
+++ b/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
@@ -22,7 +22,7 @@ echo "\n-- Format a sample entry --\n";
 var_dump( $abbr["acst"] );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing DateTimeZone::listAbbreviations() : basic functionality ***
 string(5) "array"
 int(144)
diff --git a/ext/date/tests/date_parse_001.phpt b/ext/date/tests/date_parse_001.phpt
index 0d58c1f8e9..36f8d9bbdd 100644
--- a/ext/date/tests/date_parse_001.phpt
+++ b/ext/date/tests/date_parse_001.phpt
@@ -14,7 +14,7 @@ Test basic date_parse()
     var_dump(date_parse(""));
     echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 array(12) {
   ["year"]=>
   int(2006)
diff --git a/ext/date/tests/date_parse_error.phpt b/ext/date/tests/date_parse_error.phpt
index 24b0094c9e..6a5180fdfb 100644
--- a/ext/date/tests/date_parse_error.phpt
+++ b/ext/date/tests/date_parse_error.phpt
@@ -17,7 +17,7 @@ $invalid_date = "2OO9-02--27 10:00?00.5";
 var_dump( date_parse($invalid_date) );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing date_parse() : error conditions ***
 
 -- Testing date_parse() function with unexpected characters in $date argument --
diff --git a/ext/date/tests/gmmktime_basic.phpt b/ext/date/tests/gmmktime_basic.phpt
index 303bd9b010..f96b635c08 100644
--- a/ext/date/tests/gmmktime_basic.phpt
+++ b/ext/date/tests/gmmktime_basic.phpt
@@ -22,6 +22,6 @@ $year = 2008;
 var_dump( gmmktime($hour, $min, $sec, $mon, $day, $year) );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing gmmktime() : basic functionality ***
 int(1218182888)
diff --git a/ext/date/tests/mktime_error.phpt b/ext/date/tests/mktime_error.phpt
index e40e40f38d..8bdb61df7b 100644
--- a/ext/date/tests/mktime_error.phpt
+++ b/ext/date/tests/mktime_error.phpt
@@ -35,7 +35,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing mktime() : error conditions ***
 
 -- Testing mktime() function with Zero arguments --
diff --git a/ext/date/tests/timezone_abbreviations_list_basic1.phpt b/ext/date/tests/timezone_abbreviations_list_basic1.phpt
index b3bf7c84a1..0640b8a83d 100644
--- a/ext/date/tests/timezone_abbreviations_list_basic1.phpt
+++ b/ext/date/tests/timezone_abbreviations_list_basic1.phpt
@@ -22,7 +22,7 @@ echo "\n-- Format a sample entry --\n";
 var_dump( $abbr["acst"] );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing timezone_abbreviations_list() : basic functionality ***
 string(5) "array"
 int(144)
diff --git a/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt b/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt
index 50a1559f58..855acaaed8 100644
--- a/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt
+++ b/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt
@@ -25,7 +25,7 @@ $finfo = new finfo( FILEINFO_NONE, $magicFile );
 var_dump( $finfo->set_flags( FILEINFO_MIME ) );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing finfo_set_flags() : basic functionality ***
 bool(true)
 bool(true)
diff --git a/ext/fileinfo/tests/finfo_set_flags_basic.phpt b/ext/fileinfo/tests/finfo_set_flags_basic.phpt
index 95f2648f51..fe2921b560 100644
--- a/ext/fileinfo/tests/finfo_set_flags_basic.phpt
+++ b/ext/fileinfo/tests/finfo_set_flags_basic.phpt
@@ -25,7 +25,7 @@ $finfo = new finfo( FILEINFO_NONE, $magicFile );
 var_dump( $finfo->set_flags( FILEINFO_MIME ) );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing finfo_set_flags() : basic functionality ***
 bool(true)
 bool(true)
diff --git a/ext/filter/tests/007.phpt b/ext/filter/tests/007.phpt
index dc966b8cc9..b5f285342b 100644
--- a/ext/filter/tests/007.phpt
+++ b/ext/filter/tests/007.phpt
@@ -23,7 +23,7 @@ var_dump(filter_has_var(INPUT_POST, ""));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 bool(true)
 bool(false)
diff --git a/ext/filter/tests/008.phpt b/ext/filter/tests/008.phpt
index 75e0968c62..1d4d64529d 100644
--- a/ext/filter/tests/008.phpt
+++ b/ext/filter/tests/008.phpt
@@ -9,7 +9,7 @@ var_dump(filter_list());
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 array(21) {
   [0]=>
   string(3) "int"
diff --git a/ext/filter/tests/010.phpt b/ext/filter/tests/010.phpt
index 14f8db01af..46b6044668 100644
--- a/ext/filter/tests/010.phpt
+++ b/ext/filter/tests/010.phpt
@@ -17,7 +17,7 @@ var_dump(filter_var(1, 0, array()));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 array(7) {
   [0]=>
   int(1)
diff --git a/ext/hash/tests/hash_hkdf_edges.phpt b/ext/hash/tests/hash_hkdf_edges.phpt
index cee86ae82e..ceb21631d1 100644
--- a/ext/hash/tests/hash_hkdf_edges.phpt
+++ b/ext/hash/tests/hash_hkdf_edges.phpt
@@ -25,7 +25,7 @@ catch (\Error $e) {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing hash_hkdf(): edge cases ***
 Length < digestSize: 98b16391063ece
 Length % digestSize != 0: 98b16391063ecee006a3ca8ee5776b1e5f
diff --git a/ext/hash/tests/hash_hmac_file_basic.phpt b/ext/hash/tests/hash_hmac_file_basic.phpt
index 4569c46c35..11b9d05738 100644
--- a/ext/hash/tests/hash_hmac_file_basic.phpt
+++ b/ext/hash/tests/hash_hmac_file_basic.phpt
@@ -57,7 +57,7 @@ echo "sha256(raw): " . bin2hex(hash_hmac_file('sha256', $file, $key, TRUE)). "\n
 unlink($file);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing hash_hmac_file() : basic functionality ***
 gost: 94c39a40d5db852a8dc3d24e37eebf2d53e3d711457c59cd02b614f792a9d918
 haval128,3: f1cea637451097d790354a86de3f54a3
diff --git a/ext/json/tests/json_last_error_msg_error.phpt b/ext/json/tests/json_last_error_msg_error.phpt
index 75b06f72a2..0eb55c4c66 100644
--- a/ext/json/tests/json_last_error_msg_error.phpt
+++ b/ext/json/tests/json_last_error_msg_error.phpt
@@ -14,6 +14,6 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 string(8) "No error"
 json_last_error_msg() expects exactly 0 parameters, 1 given
diff --git a/ext/libxml/tests/bug76777.phpt b/ext/libxml/tests/bug76777.phpt
index 5e15024b81..c50e52203f 100644
--- a/ext/libxml/tests/bug76777.phpt
+++ b/ext/libxml/tests/bug76777.phpt
@@ -29,7 +29,7 @@ libxml_set_external_entity_loader(function($p,$s,$c) {
 $dom=new DOMDocument($xml);
 $dom->schemaValidateSource($xsd);
 ?>
---EXPECTF--
+--EXPECT--
 NULL
 string(15) "nonexistent.xsd"
 array(4) {
diff --git a/ext/pcre/tests/preg_replace_error2.phpt b/ext/pcre/tests/preg_replace_error2.phpt
index 2401e0bb49..d7748bf954 100644
--- a/ext/pcre/tests/preg_replace_error2.phpt
+++ b/ext/pcre/tests/preg_replace_error2.phpt
@@ -29,7 +29,7 @@ try {
 }
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing preg_replace() : error conditions ***
 
 Arg value is: this is a string
diff --git a/ext/pcre/tests/split2.phpt b/ext/pcre/tests/split2.phpt
index 5fafee3b87..3d9714a420 100644
--- a/ext/pcre/tests/split2.phpt
+++ b/ext/pcre/tests/split2.phpt
@@ -19,7 +19,7 @@ var_dump(preg_split('/(\d*)/', 'ab2c3u'));
 var_dump(preg_last_error() == PREG_RECURSION_LIMIT_ERROR);
 
 ?>
---EXPECTF--
+--EXPECT--
 array(15) {
   [0]=>
   string(0) ""
diff --git a/ext/phar/tests/phar_isvalidpharfilename.phpt b/ext/phar/tests/phar_isvalidpharfilename.phpt
index 8b9088b9b3..d44c0603e9 100644
--- a/ext/phar/tests/phar_isvalidpharfilename.phpt
+++ b/ext/phar/tests/phar_isvalidpharfilename.phpt
@@ -72,7 +72,7 @@ var_dump(Phar::isValidPharFilename('dir.phar.php', false));
 --CLEAN--
 <?php
 rmdir(__DIR__ . '/.phar');
---EXPECTF--
+--EXPECT--
 bool(false)
 bool(false)
 bool(false)
diff --git a/ext/phar/tests/pharfileinfo_chmod.phpt b/ext/phar/tests/pharfileinfo_chmod.phpt
index 822b5ac628..26d7257602 100644
--- a/ext/phar/tests/pharfileinfo_chmod.phpt
+++ b/ext/phar/tests/pharfileinfo_chmod.phpt
@@ -24,5 +24,5 @@ $b->chmod(0666);
 ?>
 --CLEAN--
 <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?>
---EXPECTF--
+--EXPECT--
 Phar entry "a" is a temporary directory (not an actual entry in the archive), cannot chmod
diff --git a/ext/phar/tests/pharfileinfo_setmetadata.phpt b/ext/phar/tests/pharfileinfo_setmetadata.phpt
index 38e23f706d..8b4385ad5f 100644
--- a/ext/phar/tests/pharfileinfo_setmetadata.phpt
+++ b/ext/phar/tests/pharfileinfo_setmetadata.phpt
@@ -40,7 +40,7 @@ echo $e->getMessage(), "\n";
 --CLEAN--
 <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?>
 <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?>
---EXPECTF--
+--EXPECT--
 Phar entry is a temporary directory (not an actual entry in the archive), cannot set metadata
 Phar entry is a temporary directory (not an actual entry in the archive), cannot delete metadata
 Write operations disabled by the php.ini setting phar.readonly
diff --git a/ext/phar/tests/stat2_5.3.phpt b/ext/phar/tests/stat2_5.3.phpt
index 19acc3ba99..9e9e158602 100644
--- a/ext/phar/tests/stat2_5.3.phpt
+++ b/ext/phar/tests/stat2_5.3.phpt
@@ -35,7 +35,7 @@ include $fname3;
 --CLEAN--
 <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.tar'); ?>
 <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 is_link
 bool(false)
diff --git a/ext/posix/tests/posix_getgrgid_error.phpt b/ext/posix/tests/posix_getgrgid_error.phpt
index e9dbe2a6ce..36ffcf4952 100644
--- a/ext/posix/tests/posix_getgrgid_error.phpt
+++ b/ext/posix/tests/posix_getgrgid_error.phpt
@@ -20,7 +20,7 @@ var_dump( posix_getgrgid($gid));
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing posix_getgrgid() : error conditions ***
 
 -- Testing posix_getgrgid() function with a negative group id --
diff --git a/ext/posix/tests/posix_getpgid_error.phpt b/ext/posix/tests/posix_getpgid_error.phpt
index 19e306b2ee..85f12d4917 100644
--- a/ext/posix/tests/posix_getpgid_error.phpt
+++ b/ext/posix/tests/posix_getpgid_error.phpt
@@ -22,7 +22,7 @@ var_dump( posix_getpgid($pid) );
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing posix_getpgid() : error conditions ***
 
 -- Testing posix_getpgid() with negative pid  --
diff --git a/ext/posix/tests/posix_getpwuid_error.phpt b/ext/posix/tests/posix_getpwuid_error.phpt
index 365033b689..b4ec515e74 100644
--- a/ext/posix/tests/posix_getpwuid_error.phpt
+++ b/ext/posix/tests/posix_getpwuid_error.phpt
@@ -20,7 +20,7 @@ var_dump( posix_getpwuid($uid) );
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing posix_getpwuid() : error conditions ***
 
 -- Testing posix_getpwuid() function negative uid --
diff --git a/ext/posix/tests/posix_getsid_error.phpt b/ext/posix/tests/posix_getsid_error.phpt
index 8e05a23496..08080230aa 100644
--- a/ext/posix/tests/posix_getsid_error.phpt
+++ b/ext/posix/tests/posix_getsid_error.phpt
@@ -15,5 +15,5 @@ PHP Testfest Berlin 2009-05-10
 <?php
 var_dump( posix_getsid(-1) );
 ?>
---EXPECTF--
+--EXPECT--
 bool(false)
diff --git a/ext/posix/tests/posix_initgroups.phpt b/ext/posix/tests/posix_initgroups.phpt
index 20cf8cef8b..c77acfe3a4 100644
--- a/ext/posix/tests/posix_initgroups.phpt
+++ b/ext/posix/tests/posix_initgroups.phpt
@@ -11,5 +11,5 @@ if (!function_exists('posix_initgroups')) die('skip posix_initgroups() not found
 var_dump(posix_initgroups(NULL, NULL));
 
 ?>
---EXPECTF--
+--EXPECT--
 bool(false)
diff --git a/ext/posix/tests/posix_kill_error.phpt b/ext/posix/tests/posix_kill_error.phpt
index 89474c4994..ea9b4f45dc 100644
--- a/ext/posix/tests/posix_kill_error.phpt
+++ b/ext/posix/tests/posix_kill_error.phpt
@@ -28,7 +28,7 @@ var_dump( posix_kill($pid, 999) );
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing posix_kill() : error conditions ***
 
 -- Testing posix_kill() function with invalid signal --
diff --git a/ext/posix/tests/posix_strerror_error.phpt b/ext/posix/tests/posix_strerror_error.phpt
index 60b096656a..2792ff5b3b 100644
--- a/ext/posix/tests/posix_strerror_error.phpt
+++ b/ext/posix/tests/posix_strerror_error.phpt
@@ -20,7 +20,7 @@ echo gettype( posix_strerror($errno) )."\n";
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing posix_strerror() : error conditions ***
 
 -- Testing posix_strerror() function with invalid error number --
diff --git a/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt b/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt
index a135939052..607fead65c 100644
--- a/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt
+++ b/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt
@@ -16,7 +16,7 @@ var_dump($rc->hasProperty(1));
 var_dump($rc->hasProperty(1.5));
 var_dump($rc->hasProperty(true));
 ?>
---EXPECTF--
+--EXPECT--
 Check invalid params:
 bool(false)
 bool(false)
diff --git a/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt b/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt
index 728ddf9265..7e45eec411 100644
--- a/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt
+++ b/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt
@@ -43,7 +43,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing ReflectionMethod::getClosure() : error conditions ***
 
 -- Testing ReflectionMethod::getClosure() function with invalid object --
diff --git a/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt b/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt
index 113cabbbeb..c3bab48d6f 100644
--- a/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt
+++ b/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt
@@ -69,7 +69,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 Non-instance:
 string(72) "Given object is not an instance of the class this method was declared in"
 
diff --git a/ext/reflection/tests/ReflectionObject_getName_basic.phpt b/ext/reflection/tests/ReflectionObject_getName_basic.phpt
index 1885695cb1..94ad1e2c7b 100644
--- a/ext/reflection/tests/ReflectionObject_getName_basic.phpt
+++ b/ext/reflection/tests/ReflectionObject_getName_basic.phpt
@@ -15,7 +15,7 @@ $r3 = new ReflectionObject($r2);
 var_dump($r3->getName());
 
 ?>
---EXPECTF--
+--EXPECT--
 string(8) "stdClass"
 string(1) "C"
 string(16) "ReflectionObject"
diff --git a/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt b/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt
index 1472615178..7defcb76e0 100644
--- a/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt
+++ b/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt
@@ -25,7 +25,7 @@ reflectProperty("TestClass", "prot");
 reflectProperty("TestClass", "priv");
 
 ?>
---EXPECTF--
+--EXPECT--
 **********************************
 Reflecting on property TestClass::pub
 
diff --git a/ext/reflection/tests/ReflectionProperty_setValue_error.phpt b/ext/reflection/tests/ReflectionProperty_setValue_error.phpt
index f58590b3ea..1f0c2b5f2b 100644
--- a/ext/reflection/tests/ReflectionProperty_setValue_error.phpt
+++ b/ext/reflection/tests/ReflectionProperty_setValue_error.phpt
@@ -32,7 +32,7 @@ $propInfo = new ReflectionProperty('TestClass', 'pub2');
 var_dump($propInfo->setValue($instanceWithNoProperties, "NewValue"));
 var_dump($instanceWithNoProperties->pub2);
 ?>
---EXPECTF--
+--EXPECT--
 Protected property:
 Cannot access non-public member TestClass::$prot
 
diff --git a/ext/session/tests/bug79221.phpt b/ext/session/tests/bug79221.phpt
index b0972c4697..0813457035 100644
--- a/ext/session/tests/bug79221.phpt
+++ b/ext/session/tests/bug79221.phpt
@@ -40,6 +40,6 @@ session_start();
 var_dump($_SESSION);
 session_destroy();
 
---EXPECTF--
+--EXPECT--
 array(0) {
 }
diff --git a/ext/session/tests/session_cache_limiter_error.phpt b/ext/session/tests/session_cache_limiter_error.phpt
index 284649e277..d291d531c0 100644
--- a/ext/session/tests/session_cache_limiter_error.phpt
+++ b/ext/session/tests/session_cache_limiter_error.phpt
@@ -89,7 +89,7 @@ fclose($fp);
 echo "Done";
 ob_end_flush();
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing session_cache_limiter() : error functionality ***
 
 -- Iteration 1 --
diff --git a/ext/spl/tests/bug61347.phpt b/ext/spl/tests/bug61347.phpt
index b83f48f7ff..4b4f9eaedf 100644
--- a/ext/spl/tests/bug61347.phpt
+++ b/ext/spl/tests/bug61347.phpt
@@ -21,7 +21,7 @@ var_dump(isset($b[37])); //true
 var_dump(isset($b['no_exists'])); //false
 var_dump(empty($b['b'])); //true
 var_dump(empty($b[37])); //true
---EXPECTF--
+--EXPECT--
 bool(false)
 bool(false)
 bool(false)
diff --git a/ext/spl/tests/fileobject_005.phpt b/ext/spl/tests/fileobject_005.phpt
index e26a8d7aea..cce4a7d6a6 100644
--- a/ext/spl/tests/fileobject_005.phpt
+++ b/ext/spl/tests/fileobject_005.phpt
@@ -27,6 +27,6 @@ $fo->fwrite("blahlubba");
 $path = __DIR__.DIRECTORY_SEPARATOR.'fileobject_005.txt';
 unlink($path);
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 string(4) "blah"
diff --git a/ext/spl/tests/iterator_045.phpt b/ext/spl/tests/iterator_045.phpt
index 63d78cc78e..e245b95688 100644
--- a/ext/spl/tests/iterator_045.phpt
+++ b/ext/spl/tests/iterator_045.phpt
@@ -88,7 +88,7 @@ $it->testUnset($unsets);
 $it->show();
 
 ?>
---EXPECTF--
+--EXPECT--
 Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
 Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
 MyCachingIterator::testSet()
diff --git a/ext/spl/tests/regexIterator_setMode_error.phpt b/ext/spl/tests/regexIterator_setMode_error.phpt
index 4816896d8a..3b0eaf1d66 100644
--- a/ext/spl/tests/regexIterator_setMode_error.phpt
+++ b/ext/spl/tests/regexIterator_setMode_error.phpt
@@ -18,7 +18,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 int(0)
 string(14) "Illegal mode 7"
 int(0)
diff --git a/ext/spl/tests/spl_heap_is_empty_basic.phpt b/ext/spl/tests/spl_heap_is_empty_basic.phpt
index 4a90734ad4..abf64f8d9d 100644
--- a/ext/spl/tests/spl_heap_is_empty_basic.phpt
+++ b/ext/spl/tests/spl_heap_is_empty_basic.phpt
@@ -22,7 +22,7 @@ var_dump($heap->isEmpty());
 $heap->extract();
 var_dump($heap->isEmpty());
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 bool(false)
 bool(true)
diff --git a/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt b/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt
index 994c67e0c3..459beeca53 100644
--- a/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt
+++ b/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt
@@ -69,7 +69,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 int(1)
 Unable to prepare statement: 23, not authorized
 bool(true)
diff --git a/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt b/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt
index 3f9fe84130..9a893c590d 100644
--- a/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt
+++ b/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt
@@ -44,7 +44,7 @@ var_dump($db->close());
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 Getting expanded SQL statement
 string(21) "SELECT 42, 'php', 43;"
 Execute statement
diff --git a/ext/standard/tests/array/005.phpt b/ext/standard/tests/array/005.phpt
index c51e98a67b..ed9f0458c4 100644
--- a/ext/standard/tests/array/005.phpt
+++ b/ext/standard/tests/array/005.phpt
@@ -69,7 +69,7 @@ var_dump( current($mixed_array[1]) );
 
 echo"Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing Error Conditions ***
 NULL
 
diff --git a/ext/standard/tests/array/009.phpt b/ext/standard/tests/array/009.phpt
index c62be0d27c..fc10d293ff 100644
--- a/ext/standard/tests/array/009.phpt
+++ b/ext/standard/tests/array/009.phpt
@@ -71,7 +71,7 @@ foreach ($varient_arrays as $sub_array )  {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing basic operations ***
 -- Iteration 1 --
 int(0)
diff --git a/ext/standard/tests/array/array_diff_assoc_error.phpt b/ext/standard/tests/array/array_diff_assoc_error.phpt
index 6aa7864ee9..69015289e2 100644
--- a/ext/standard/tests/array/array_diff_assoc_error.phpt
+++ b/ext/standard/tests/array/array_diff_assoc_error.phpt
@@ -33,7 +33,7 @@ try {
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_diff_assoc() : error conditions ***
 
 -- Testing array_diff_assoc() function with zero arguments --
diff --git a/ext/standard/tests/array/array_diff_error.phpt b/ext/standard/tests/array/array_diff_error.phpt
index d269f010b8..889c5ce1b2 100644
--- a/ext/standard/tests/array/array_diff_error.phpt
+++ b/ext/standard/tests/array/array_diff_error.phpt
@@ -33,7 +33,7 @@ try {
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_diff() : error conditions ***
 
 -- Testing array_diff() function with zero arguments --
diff --git a/ext/standard/tests/array/array_diff_key_error.phpt b/ext/standard/tests/array/array_diff_key_error.phpt
index e957abce1c..80ff5728fe 100644
--- a/ext/standard/tests/array/array_diff_key_error.phpt
+++ b/ext/standard/tests/array/array_diff_key_error.phpt
@@ -28,7 +28,7 @@ try {
     echo $e->getMessage(), "\n";
 }
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_diff_key() : error conditions ***
 
 -- Testing array_diff_key() function with less than expected no. of arguments --
diff --git a/ext/standard/tests/array/array_filter.phpt b/ext/standard/tests/array/array_filter.phpt
index a1b18bd234..2cb21ca609 100644
--- a/ext/standard/tests/array/array_filter.phpt
+++ b/ext/standard/tests/array/array_filter.phpt
@@ -28,7 +28,7 @@ var_dump(array_filter($array3, "even"));
 var_dump(array_filter(array()));
 
 ?>
---EXPECTF--
+--EXPECT--
 Odd :
 array(3) {
   ["a"]=>
diff --git a/ext/standard/tests/array/array_filter_variation10.phpt b/ext/standard/tests/array/array_filter_variation10.phpt
index 265daf1fb4..ff88d7a7f8 100644
--- a/ext/standard/tests/array/array_filter_variation10.phpt
+++ b/ext/standard/tests/array/array_filter_variation10.phpt
@@ -56,7 +56,7 @@ try {
 
 echo "Done"
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_filter() : usage variations - using array keys in 'callback' ***
 0 = 0
 1 = 1
diff --git a/ext/standard/tests/array/array_key_exists_variation3.phpt b/ext/standard/tests/array/array_key_exists_variation3.phpt
index 4a6409bb1f..ef6cf45139 100644
--- a/ext/standard/tests/array/array_key_exists_variation3.phpt
+++ b/ext/standard/tests/array/array_key_exists_variation3.phpt
@@ -34,7 +34,7 @@ foreach($keys as $key) {
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_key_exists() : usage variations ***
 
 -- Iteration 1 --
diff --git a/ext/standard/tests/array/array_map_error.phpt b/ext/standard/tests/array/array_map_error.phpt
index 4739bbf663..b41871e1c4 100644
--- a/ext/standard/tests/array/array_map_error.phpt
+++ b/ext/standard/tests/array/array_map_error.phpt
@@ -38,7 +38,7 @@ var_dump( array_map('callback2', $arr1, $arr2, $arr3) );
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_map() : error conditions ***
 
 -- Testing array_map() function with one less than expected no. of arguments --
diff --git a/ext/standard/tests/array/array_merge.phpt b/ext/standard/tests/array/array_merge.phpt
index 08ecbf7147..75007779fa 100644
--- a/ext/standard/tests/array/array_merge.phpt
+++ b/ext/standard/tests/array/array_merge.phpt
@@ -83,7 +83,7 @@ var_dump(array_merge());
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_merge() basic functionality ***
 
 --- Iteration 0 ---
diff --git a/ext/standard/tests/array/array_push.phpt b/ext/standard/tests/array/array_push.phpt
index 227a520ac1..78076b8fc4 100644
--- a/ext/standard/tests/array/array_push.phpt
+++ b/ext/standard/tests/array/array_push.phpt
@@ -60,7 +60,7 @@ var_dump( $mixed_array[2] );
 
 echo"\nDone";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing Edge Conditions ***
 int(11)
 int(1)
diff --git a/ext/standard/tests/array/array_slice.phpt b/ext/standard/tests/array/array_slice.phpt
index d19f5195d6..a76277883a 100644
--- a/ext/standard/tests/array/array_slice.phpt
+++ b/ext/standard/tests/array/array_slice.phpt
@@ -68,7 +68,7 @@ foreach ($var_array as $sub_array)
   var_dump (array_slice($var_array[2], -3, -2, false) );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Iteration 1 ***
 
 *** Variation with first two Arguments ***
diff --git a/ext/standard/tests/array/array_unshift.phpt b/ext/standard/tests/array/array_unshift.phpt
index 9ebe83391e..265de4e846 100644
--- a/ext/standard/tests/array/array_unshift.phpt
+++ b/ext/standard/tests/array/array_unshift.phpt
@@ -12,7 +12,7 @@ var_dump($a);
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 int(1)
 array(1) {
   [0]=>
diff --git a/ext/standard/tests/array/array_walk.phpt b/ext/standard/tests/array/array_walk.phpt
index 1f5457c9f7..151c9c70d0 100644
--- a/ext/standard/tests/array/array_walk.phpt
+++ b/ext/standard/tests/array/array_walk.phpt
@@ -24,7 +24,7 @@ try {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 int(1)
 int(0)
 string(4) "data"
diff --git a/ext/standard/tests/array/array_walk_error2.phpt b/ext/standard/tests/array/array_walk_error2.phpt
index dfc95d3af8..e5aeadcdc0 100644
--- a/ext/standard/tests/array/array_walk_error2.phpt
+++ b/ext/standard/tests/array/array_walk_error2.phpt
@@ -54,7 +54,7 @@ try {
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_walk() : error conditions - callback parameters ***
 Exception: Too few arguments to function callback1(), 2 passed and exactly 3 expected
 Exception: Too few arguments to function callback2(), 3 passed and exactly 4 expected
diff --git a/ext/standard/tests/array/array_walk_recursive1.phpt b/ext/standard/tests/array/array_walk_recursive1.phpt
index 472cb1032d..d4d3e7d8eb 100644
--- a/ext/standard/tests/array/array_walk_recursive1.phpt
+++ b/ext/standard/tests/array/array_walk_recursive1.phpt
@@ -24,7 +24,7 @@ try {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 int(1)
 int(0)
 string(4) "data"
diff --git a/ext/standard/tests/array/array_walk_recursive_error2.phpt b/ext/standard/tests/array/array_walk_recursive_error2.phpt
index f1686d7acd..2509c95f60 100644
--- a/ext/standard/tests/array/array_walk_recursive_error2.phpt
+++ b/ext/standard/tests/array/array_walk_recursive_error2.phpt
@@ -54,7 +54,7 @@ try {
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_walk_recursive() : error conditions - callback parameters ***
 Exception: Too few arguments to function callback1(), 2 passed and exactly 3 expected
 Exception: Too few arguments to function callback2(), 3 passed and exactly 4 expected
diff --git a/ext/standard/tests/array/array_walk_recursive_variation7.phpt b/ext/standard/tests/array/array_walk_recursive_variation7.phpt
index a0c159d71d..a1cbdad2bd 100644
--- a/ext/standard/tests/array/array_walk_recursive_variation7.phpt
+++ b/ext/standard/tests/array/array_walk_recursive_variation7.phpt
@@ -33,7 +33,7 @@ echo "-- Anonymous function with null argument --\n";
 var_dump( array_walk_recursive( $input, function() { echo "1\n"; }));
 echo "Done"
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_walk_recursive() : anonymous function as callback ***
 -- Anonymous function with one argument --
 int(2)
diff --git a/ext/standard/tests/array/array_walk_variation7.phpt b/ext/standard/tests/array/array_walk_variation7.phpt
index 0354782eda..3689f8a798 100644
--- a/ext/standard/tests/array/array_walk_variation7.phpt
+++ b/ext/standard/tests/array/array_walk_variation7.phpt
@@ -33,7 +33,7 @@ echo "-- Anonymous function with null argument --\n";
 var_dump( array_walk( $input, function() { echo "1\n"; }));
 echo "Done"
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing array_walk() : anonymous function as callback ***
 -- Anonymous function with one argument --
 int(2)
diff --git a/ext/standard/tests/array/uasort_variation8.phpt b/ext/standard/tests/array/uasort_variation8.phpt
index d27cd569c0..b6abdeaef3 100644
--- a/ext/standard/tests/array/uasort_variation8.phpt
+++ b/ext/standard/tests/array/uasort_variation8.phpt
@@ -29,7 +29,7 @@ var_dump($array_arg);
 
 echo "Done"
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing uasort() : built in function as 'cmp_function' ***
 -- Testing uasort() with built-in 'cmp_function': strcasecmp() --
 bool(true)
diff --git a/ext/standard/tests/array/usort_variation8.phpt b/ext/standard/tests/array/usort_variation8.phpt
index 55ff362d41..4a750ccefa 100644
--- a/ext/standard/tests/array/usort_variation8.phpt
+++ b/ext/standard/tests/array/usort_variation8.phpt
@@ -31,7 +31,7 @@ var_dump( usort($temp_array2, 'strcmp') );
 var_dump($temp_array2);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing usort() : usage variation ***
 
 -- Testing usort() with built-in 'cmp_function': strcasecmp() --
diff --git a/ext/standard/tests/assert/assert_variation.phpt b/ext/standard/tests/assert/assert_variation.phpt
index a28ea58d5a..7b550b36d1 100644
--- a/ext/standard/tests/assert/assert_variation.phpt
+++ b/ext/standard/tests/assert/assert_variation.phpt
@@ -67,7 +67,7 @@ var_dump($rao=assert_options(ASSERT_CALLBACK));
 echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
 var_dump($r2=assert(0 != 0));
 echo"\n";
---EXPECTF--
+--EXPECT--
 Initial values: assert_options(ASSERT_CALLBACK) => [f1]
 Initial values: ini.get("assert.callback") => [f1]
 f1 called
diff --git a/ext/standard/tests/file/auto_detect_line_endings_1.phpt b/ext/standard/tests/file/auto_detect_line_endings_1.phpt
index c79082ecdb..5a4ff0a10f 100644
--- a/ext/standard/tests/file/auto_detect_line_endings_1.phpt
+++ b/ext/standard/tests/file/auto_detect_line_endings_1.phpt
@@ -15,7 +15,7 @@ var_dump(fgets(STDIN));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 string(1) "1"
 string(8) "fooBar1
"
 string(8) "fooBar2
"
diff --git a/ext/standard/tests/file/auto_detect_line_endings_2.phpt b/ext/standard/tests/file/auto_detect_line_endings_2.phpt
index f33a055e08..3994f1ee3b 100644
--- a/ext/standard/tests/file/auto_detect_line_endings_2.phpt
+++ b/ext/standard/tests/file/auto_detect_line_endings_2.phpt
@@ -16,7 +16,7 @@ var_dump(fgets($stdin));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 string(2) "on"
 string(8) "fooBar1
"
 string(8) "fooBar2
"
diff --git a/ext/standard/tests/file/basename.phpt b/ext/standard/tests/file/basename.phpt
index 8352f4da4b..7a98e833a3 100644
--- a/ext/standard/tests/file/basename.phpt
+++ b/ext/standard/tests/file/basename.phpt
@@ -138,7 +138,7 @@ check_basename( $file_path_variations );
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing basic operations ***
 
 --Iteration 1--
diff --git a/ext/standard/tests/file/fscanf.phpt b/ext/standard/tests/file/fscanf.phpt
index 6605b795ff..4acadc6169 100644
--- a/ext/standard/tests/file/fscanf.phpt
+++ b/ext/standard/tests/file/fscanf.phpt
@@ -75,7 +75,7 @@ echo "Done\n";
 $filename = __DIR__."/fscanf.dat";
 unlink($filename);
 ?>
---EXPECTF--
+--EXPECT--
 int(0)
 NULL
 int(1)
diff --git a/ext/standard/tests/file/fscanf_variation10.phpt b/ext/standard/tests/file/fscanf_variation10.phpt
index f657c07005..507ed8e22d 100644
--- a/ext/standard/tests/file/fscanf_variation10.phpt
+++ b/ext/standard/tests/file/fscanf_variation10.phpt
@@ -82,7 +82,7 @@ $file_path = __DIR__;
 $filename = "$file_path/fscanf_variation10.tmp";
 unlink($filename);
 ?>
---EXPECTF--
+--EXPECT--
 *** Test fscanf(): different float format types with resource ***
 
 -- iteration 1 --
diff --git a/ext/standard/tests/file/is_dir_variation3.phpt b/ext/standard/tests/file/is_dir_variation3.phpt
index e82d9ae034..1cf1f25138 100644
--- a/ext/standard/tests/file/is_dir_variation3.phpt
+++ b/ext/standard/tests/file/is_dir_variation3.phpt
@@ -30,7 +30,7 @@ foreach($dirnames as $dirname) {
   var_dump( is_dir($dirname) );
 }
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_dir() with Invalid arguments: expected bool(false) ***
 bool(false)
 bool(false)
diff --git a/ext/standard/tests/file/is_executable_error.phpt b/ext/standard/tests/file/is_executable_error.phpt
index ad90d64435..e77ca86349 100644
--- a/ext/standard/tests/file/is_executable_error.phpt
+++ b/ext/standard/tests/file/is_executable_error.phpt
@@ -10,7 +10,7 @@ echo "\n*** Testing is_exceutable() on non-existent directory ***\n";
 var_dump( is_executable(__DIR__."/is_executable") );
 
 echo "Done\n";
---EXPECTF--
+--EXPECT--
 *** Testing is_exceutable() on non-existent directory ***
 bool(false)
 Done
diff --git a/ext/standard/tests/file/is_executable_variation3.phpt b/ext/standard/tests/file/is_executable_variation3.phpt
index 92ad3320d3..802dbfdf7e 100644
--- a/ext/standard/tests/file/is_executable_variation3.phpt
+++ b/ext/standard/tests/file/is_executable_variation3.phpt
@@ -40,7 +40,7 @@ foreach( $invalid_files as $invalid_file ) {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_executable(): usage variations ***
 
 *** Testing is_executable() on invalid files ***
diff --git a/ext/standard/tests/file/is_file_variation3.phpt b/ext/standard/tests/file/is_file_variation3.phpt
index d33b01dfb3..5bdb63e37c 100644
--- a/ext/standard/tests/file/is_file_variation3.phpt
+++ b/ext/standard/tests/file/is_file_variation3.phpt
@@ -39,7 +39,7 @@ foreach([
   clearstatcache();
 }
 ?>
---EXPECTF--
+--EXPECT--
 float(-2.34555): 0
 string(1) " ": 0
 string(0) "": 0
diff --git a/ext/standard/tests/file/is_readable_error.phpt b/ext/standard/tests/file/is_readable_error.phpt
index 1520eb4d20..c8a6c34fa0 100644
--- a/ext/standard/tests/file/is_readable_error.phpt
+++ b/ext/standard/tests/file/is_readable_error.phpt
@@ -11,7 +11,7 @@ var_dump( is_readable(__DIR__."/is_readable.tmp") );
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_readable() on non-existent file ***
 bool(false)
 Done
diff --git a/ext/standard/tests/file/is_readable_variation3.phpt b/ext/standard/tests/file/is_readable_variation3.phpt
index 97c794d1b7..f7eebdc2b8 100644
--- a/ext/standard/tests/file/is_readable_variation3.phpt
+++ b/ext/standard/tests/file/is_readable_variation3.phpt
@@ -37,7 +37,7 @@ foreach( $misc_files as $misc_file ) {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_readable(): usage variations ***
 
 *** Testing is_readable() on miscellaneous filenames ***
diff --git a/ext/standard/tests/file/is_uploaded_file_basic.phpt b/ext/standard/tests/file/is_uploaded_file_basic.phpt
index d053244a79..3e5bf6320c 100644
--- a/ext/standard/tests/file/is_uploaded_file_basic.phpt
+++ b/ext/standard/tests/file/is_uploaded_file_basic.phpt
@@ -30,7 +30,7 @@ var_dump(is_uploaded_file('random_filename.txt'));
 var_dump(is_uploaded_file('__FILE__'));
 
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 bool(false)
 bool(false)
diff --git a/ext/standard/tests/file/is_writable_error.phpt b/ext/standard/tests/file/is_writable_error.phpt
index e2a38412cd..f01e69b13d 100644
--- a/ext/standard/tests/file/is_writable_error.phpt
+++ b/ext/standard/tests/file/is_writable_error.phpt
@@ -14,7 +14,7 @@ var_dump( is_writeable(__DIR__."/is_writable") );
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_writable() on non-existent file ***
 bool(false)
 bool(false)
diff --git a/ext/standard/tests/file/is_writable_variation3.phpt b/ext/standard/tests/file/is_writable_variation3.phpt
index c5843a5abf..167d874ac2 100644
--- a/ext/standard/tests/file/is_writable_variation3.phpt
+++ b/ext/standard/tests/file/is_writable_variation3.phpt
@@ -37,7 +37,7 @@ foreach( $misc_files as $misc_file ) {
   clearstatcache();
 }
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_writable(): usage variations ***
 
 *** Testing is_writable() with invalid filenames ***
diff --git a/ext/standard/tests/file/move_uploaded_file_basic.phpt b/ext/standard/tests/file/move_uploaded_file_basic.phpt
index 7af8748fe2..b80c052691 100644
--- a/ext/standard/tests/file/move_uploaded_file_basic.phpt
+++ b/ext/standard/tests/file/move_uploaded_file_basic.phpt
@@ -50,7 +50,7 @@ var_dump(move_uploaded_file($_FILES['file2']['tmp_name'], $destination4));
 unlink($destination4);
 
 ?>
---EXPECTF--
+--EXPECT--
 Valid move
 bool(true)
 bool(true)
diff --git a/ext/standard/tests/general_functions/get_include_path_basic.phpt b/ext/standard/tests/general_functions/get_include_path_basic.phpt
index bb7ccf542b..c17d5d3e71 100644
--- a/ext/standard/tests/general_functions/get_include_path_basic.phpt
+++ b/ext/standard/tests/general_functions/get_include_path_basic.phpt
@@ -20,7 +20,7 @@ if (ini_get("include_path") == get_include_path()) {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing get_include_path()
 string(1) "."
 PASSED
diff --git a/ext/standard/tests/general_functions/include_path.phpt b/ext/standard/tests/general_functions/include_path.phpt
index 56327500ea..06e806b3a2 100644
--- a/ext/standard/tests/general_functions/include_path.phpt
+++ b/ext/standard/tests/general_functions/include_path.phpt
@@ -31,7 +31,7 @@ var_dump(get_include_path());
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 string(1) "."
 NULL
 string(1) "."
diff --git a/ext/standard/tests/general_functions/is_array.phpt b/ext/standard/tests/general_functions/is_array.phpt
index 200ecbd6ac..37de6d5a5b 100644
--- a/ext/standard/tests/general_functions/is_array.phpt
+++ b/ext/standard/tests/general_functions/is_array.phpt
@@ -103,7 +103,7 @@ echo "Done\n";
 fclose($fp);
 closedir($dfp);
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_array() on different type of arrays ***
 -- Iteration 1 --
 bool(true)
diff --git a/ext/standard/tests/general_functions/is_bool.phpt b/ext/standard/tests/general_functions/is_bool.phpt
index 7c8d693a1b..70aaed9c3f 100644
--- a/ext/standard/tests/general_functions/is_bool.phpt
+++ b/ext/standard/tests/general_functions/is_bool.phpt
@@ -134,7 +134,7 @@ fclose($fp);
 closedir($dfp);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_bool() with valid boolean values ***
 -- Iteration 1 --
 bool(true)
diff --git a/ext/standard/tests/general_functions/is_float_64bit.phpt b/ext/standard/tests/general_functions/is_float_64bit.phpt
index dc6df0f109..1815e53c00 100644
--- a/ext/standard/tests/general_functions/is_float_64bit.phpt
+++ b/ext/standard/tests/general_functions/is_float_64bit.phpt
@@ -131,7 +131,7 @@ foreach ($not_floats as $value ) {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_float(), is_double() and is_real() with float values***
 -- Iteration 1 --
 bool(false)
diff --git a/ext/standard/tests/general_functions/is_int_64bit.phpt b/ext/standard/tests/general_functions/is_int_64bit.phpt
index e5c6ce77e0..8e5e9332c0 100644
--- a/ext/standard/tests/general_functions/is_int_64bit.phpt
+++ b/ext/standard/tests/general_functions/is_int_64bit.phpt
@@ -136,7 +136,7 @@ foreach ($not_int_types as $type ) {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_int(), is_integer() & is_long()  with valid integer values ***
 --Iteration 1--
 bool(true)
diff --git a/ext/standard/tests/general_functions/is_null.phpt b/ext/standard/tests/general_functions/is_null.phpt
index 4fc325c744..6560707e57 100644
--- a/ext/standard/tests/general_functions/is_null.phpt
+++ b/ext/standard/tests/general_functions/is_null.phpt
@@ -134,7 +134,7 @@ fclose($fp);
 closedir($dfp);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_null() with valid null values ***
 -- Iteration 1 --
 bool(true)
diff --git a/ext/standard/tests/general_functions/is_numeric.phpt b/ext/standard/tests/general_functions/is_numeric.phpt
index 491aa5d15b..8883c57ac2 100644
--- a/ext/standard/tests/general_functions/is_numeric.phpt
+++ b/ext/standard/tests/general_functions/is_numeric.phpt
@@ -152,7 +152,7 @@ fclose($fp);
 closedir($dfp);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_numeric() with valid numeric values ***
 -- Iteration 1 --
 bool(true)
diff --git a/ext/standard/tests/general_functions/is_object.phpt b/ext/standard/tests/general_functions/is_object.phpt
index dd0e7689fd..8a5ac1bcbe 100644
--- a/ext/standard/tests/general_functions/is_object.phpt
+++ b/ext/standard/tests/general_functions/is_object.phpt
@@ -145,7 +145,7 @@ fclose($fp);
 closedir($dfp);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_object() with valid objects ***
 -- Iteration 1 --
 bool(true)
diff --git a/ext/standard/tests/general_functions/is_scalar.phpt b/ext/standard/tests/general_functions/is_scalar.phpt
index f7ef3f5317..6a89da9f56 100644
--- a/ext/standard/tests/general_functions/is_scalar.phpt
+++ b/ext/standard/tests/general_functions/is_scalar.phpt
@@ -112,7 +112,7 @@ fclose($fp);
 closedir($dfp);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing basic operations ***
 -- Iteration 1 --
 bool(true)
diff --git a/ext/standard/tests/general_functions/is_string.phpt b/ext/standard/tests/general_functions/is_string.phpt
index 7760f79831..a4ef7a47b1 100644
--- a/ext/standard/tests/general_functions/is_string.phpt
+++ b/ext/standard/tests/general_functions/is_string.phpt
@@ -147,7 +147,7 @@ fclose($fp);
 closedir($dfp);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing is_string() with valid string values ***
 -- Iteration 1 --
 bool(true)
diff --git a/ext/standard/tests/general_functions/ob_get_length_basic.phpt b/ext/standard/tests/general_functions/ob_get_length_basic.phpt
index 46d5d2d0f6..0eb1adf9ee 100644
--- a/ext/standard/tests/general_functions/ob_get_length_basic.phpt
+++ b/ext/standard/tests/general_functions/ob_get_length_basic.phpt
@@ -32,7 +32,7 @@ dump_string_length( '' );
 dump_string_length( null );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing ob_get_length() : basic functionality ***
 bool(false)
 int(26)
diff --git a/ext/standard/tests/general_functions/php_uname_error.phpt b/ext/standard/tests/general_functions/php_uname_error.phpt
index 23859a33ac..c64c15b404 100644
--- a/ext/standard/tests/general_functions/php_uname_error.phpt
+++ b/ext/standard/tests/general_functions/php_uname_error.phpt
@@ -13,7 +13,7 @@ echo "\n-- Testing php_uname() function with invalid mode --\n";
 var_dump( php_uname('z') == php_uname('z') );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing php_uname() - error test
 
 -- Testing php_uname() function with invalid mode --
diff --git a/ext/standard/tests/general_functions/print_r.phpt b/ext/standard/tests/general_functions/print_r.phpt
index 3f24a5bc9d..d2ec63f5b4 100644
--- a/ext/standard/tests/general_functions/print_r.phpt
+++ b/ext/standard/tests/general_functions/print_r.phpt
@@ -276,7 +276,7 @@ closedir($dir_handle);
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing print_r() on integer variables ***
 
 -- Iteration 1 --
diff --git a/ext/standard/tests/general_functions/print_r_64bit.phpt b/ext/standard/tests/general_functions/print_r_64bit.phpt
index a0e9e148c6..5df1637dbd 100644
--- a/ext/standard/tests/general_functions/print_r_64bit.phpt
+++ b/ext/standard/tests/general_functions/print_r_64bit.phpt
@@ -280,7 +280,7 @@ closedir($dir_handle);
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing print_r() on integer variables ***
 
 -- Iteration 1 --
diff --git a/ext/standard/tests/general_functions/var_dump_64bit.phpt b/ext/standard/tests/general_functions/var_dump_64bit.phpt
index 0600775f58..7b74761586 100644
--- a/ext/standard/tests/general_functions/var_dump_64bit.phpt
+++ b/ext/standard/tests/general_functions/var_dump_64bit.phpt
@@ -279,7 +279,7 @@ closedir($dir_handle);
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing var_dump() on integer variables ***
 -- Iteration 1 --
 int(0)
diff --git a/ext/standard/tests/general_functions/var_export-locale.phpt b/ext/standard/tests/general_functions/var_export-locale.phpt
index bdc61d9928..9f9cd0e896 100644
--- a/ext/standard/tests/general_functions/var_export-locale.phpt
+++ b/ext/standard/tests/general_functions/var_export-locale.phpt
@@ -307,7 +307,7 @@ echo "\nDone";
 
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing var_export() with integer values ***
 
 *** Output for integer values ***
diff --git a/ext/standard/tests/image/image_type_to_extension.phpt b/ext/standard/tests/image/image_type_to_extension.phpt
index 249df57943..448aac4e99 100644
--- a/ext/standard/tests/image/image_type_to_extension.phpt
+++ b/ext/standard/tests/image/image_type_to_extension.phpt
@@ -33,7 +33,7 @@ image_type_to_extension()
     var_dump(image_type_to_extension(0));
 ?>
 Done
---EXPECTF--
+--EXPECT--
 Constant: IMAGETYPE_GIF
 	With dot: .gif
 	Without dot: gif
diff --git a/ext/standard/tests/math/lcg_value_basic.phpt b/ext/standard/tests/math/lcg_value_basic.phpt
index 95811c6f3c..ca76b5c836 100644
--- a/ext/standard/tests/math/lcg_value_basic.phpt
+++ b/ext/standard/tests/math/lcg_value_basic.phpt
@@ -24,7 +24,7 @@ if ($i != 100) {
 echo "MATHS test script completed\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 MATHS test script started
 
  lcg_value tests...
diff --git a/ext/standard/tests/network/inet.phpt b/ext/standard/tests/network/inet.phpt
index 29b4aa0e6b..b25265446f 100644
--- a/ext/standard/tests/network/inet.phpt
+++ b/ext/standard/tests/network/inet.phpt
@@ -35,7 +35,7 @@ foreach ($array as $val) {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 string(9) "127.0.0.1"
 string(13) "255.255.255.0"
 bool(false)
diff --git a/ext/standard/tests/network/ip_x86_64.phpt b/ext/standard/tests/network/ip_x86_64.phpt
index c659eb70fb..dd81bde55c 100644
--- a/ext/standard/tests/network/ip_x86_64.phpt
+++ b/ext/standard/tests/network/ip_x86_64.phpt
@@ -29,7 +29,7 @@ var_dump(long2ip(-110000));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 int(2130706433)
 string(9) "127.0.0.1"
 int(167772161)
diff --git a/ext/standard/tests/random/random_int.phpt b/ext/standard/tests/random/random_int.phpt
index 94654a7f72..6fd04420ee 100644
--- a/ext/standard/tests/random/random_int.phpt
+++ b/ext/standard/tests/random/random_int.phpt
@@ -15,7 +15,7 @@ var_dump(is_int(random_int(PHP_INT_MIN, PHP_INT_MAX)));
 var_dump(random_int(42,42));
 
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 bool(true)
 bool(true)
diff --git a/ext/standard/tests/serialize/bug45706.phpt b/ext/standard/tests/serialize/bug45706.phpt
index cc71dec4e6..c29081cab7 100644
--- a/ext/standard/tests/serialize/bug45706.phpt
+++ b/ext/standard/tests/serialize/bug45706.phpt
@@ -12,7 +12,7 @@ $s = serialize($x);
 $s = str_replace("Foo", "Bar", $s);
 $y = unserialize($s);
 var_dump($y);
---EXPECTF--
+--EXPECT--
 array(2) {
   [0]=>
   object(__PHP_Incomplete_Class)#3 (5) {
diff --git a/ext/standard/tests/streams/bug61115.phpt b/ext/standard/tests/streams/bug61115.phpt
index 3caffde232..ce6b57651c 100644
--- a/ext/standard/tests/streams/bug61115.phpt
+++ b/ext/standard/tests/streams/bug61115.phpt
@@ -13,5 +13,5 @@ try {
     echo $e->getMessage(), "\n";
 }
 ?>
---EXPECTF--
+--EXPECT--
 Object of class Closure could not be converted to string
diff --git a/ext/standard/tests/streams/bug78662.phpt b/ext/standard/tests/streams/bug78662.phpt
index e874d5aef6..2ea00b67b1 100644
--- a/ext/standard/tests/streams/bug78662.phpt
+++ b/ext/standard/tests/streams/bug78662.phpt
@@ -26,7 +26,7 @@ var_dump(fwrite($f, "bar"));
 var_dump(fread($f, 100));
 ?>
 Done
---EXPECTF--
+--EXPECT--
 bool(false)
 bool(false)
 Done
diff --git a/ext/standard/tests/streams/stream_set_timeout_error.phpt b/ext/standard/tests/streams/stream_set_timeout_error.phpt
index 7dcc645422..64e9aa5773 100644
--- a/ext/standard/tests/streams/stream_set_timeout_error.phpt
+++ b/ext/standard/tests/streams/stream_set_timeout_error.phpt
@@ -41,7 +41,7 @@ fclose($server);
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing stream_set_timeout() : error conditions ***
 
 -- Testing stream_set_timeout() function with a closed socket --
diff --git a/ext/standard/tests/strings/chr_error.phpt b/ext/standard/tests/strings/chr_error.phpt
index 2603b69210..b6bd9973b6 100644
--- a/ext/standard/tests/strings/chr_error.phpt
+++ b/ext/standard/tests/strings/chr_error.phpt
@@ -26,7 +26,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing chr() : error conditions ***
 
 -- Testing chr() function with no arguments --
diff --git a/ext/standard/tests/strings/fprintf_error.phpt b/ext/standard/tests/strings/fprintf_error.phpt
index 1ffc188051..bfef30a75b 100644
--- a/ext/standard/tests/strings/fprintf_error.phpt
+++ b/ext/standard/tests/strings/fprintf_error.phpt
@@ -29,7 +29,7 @@ try {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing Error Conditions ***
 Wrong parameter count for fprintf()
 Wrong parameter count for fprintf()
diff --git a/ext/standard/tests/strings/htmlentities24.phpt b/ext/standard/tests/strings/htmlentities24.phpt
index f2abfd5ba8..2a04bd345e 100644
--- a/ext/standard/tests/strings/htmlentities24.phpt
+++ b/ext/standard/tests/strings/htmlentities24.phpt
@@ -37,7 +37,7 @@ var_dump( htmlentities($str, ENT_COMPAT) );
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Retrieving htmlentities for 256 characters ***
 string(12) "636872283029"
 string(12) "636872283129"
diff --git a/ext/standard/tests/strings/htmlspecialchars.phpt b/ext/standard/tests/strings/htmlspecialchars.phpt
index 6e5c5fac36..5677da6fe2 100644
--- a/ext/standard/tests/strings/htmlspecialchars.phpt
+++ b/ext/standard/tests/strings/htmlspecialchars.phpt
@@ -37,7 +37,7 @@ var_dump( htmlspecialchars($str, ENT_COMPAT) );
 
 echo "Done\n"
 ?>
---EXPECTF--
+--EXPECT--
 *** Retrieving htmlspecialchars for 256 characters ***
 string(12) "636872283029"
 string(12) "636872283129"
diff --git a/ext/standard/tests/strings/ltrim.phpt b/ext/standard/tests/strings/ltrim.phpt
index 51287e04d7..8ac57ca92e 100644
--- a/ext/standard/tests/strings/ltrim.phpt
+++ b/ext/standard/tests/strings/ltrim.phpt
@@ -41,7 +41,7 @@ var_dump( ltrim($str, "\nusi") );
 echo "\nDone\n";
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Output for Error Conditions ***
 
  *** Using heredoc string ***
diff --git a/ext/standard/tests/strings/metaphone.phpt b/ext/standard/tests/strings/metaphone.phpt
index 2bc16b3248..a6b52e3934 100644
--- a/ext/standard/tests/strings/metaphone.phpt
+++ b/ext/standard/tests/strings/metaphone.phpt
@@ -24,7 +24,7 @@ foreach($array as $str) {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 string(0) ""
 string(0) ""
 bool(false)
diff --git a/ext/standard/tests/strings/parse_str_basic1.phpt b/ext/standard/tests/strings/parse_str_basic1.phpt
index 60277fa184..38652ba0fa 100644
--- a/ext/standard/tests/strings/parse_str_basic1.phpt
+++ b/ext/standard/tests/strings/parse_str_basic1.phpt
@@ -27,7 +27,7 @@ var_dump(parse_str($s1, $res3_array));
 var_dump($res3_array);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing parse_str() : basic functionality ***
 
 Basic test WITH undefined var for result arg
diff --git a/ext/standard/tests/strings/parse_str_basic3.phpt b/ext/standard/tests/strings/parse_str_basic3.phpt
index 25b5f8745d..0ea88a365b 100644
--- a/ext/standard/tests/strings/parse_str_basic3.phpt
+++ b/ext/standard/tests/strings/parse_str_basic3.phpt
@@ -73,7 +73,7 @@ var_dump(parse_str($str, $res));
 var_dump($res);
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing parse_str() : basic functionality ***
 
 Test string with array values and results array
diff --git a/ext/standard/tests/strings/printf_error.phpt b/ext/standard/tests/strings/printf_error.phpt
index 62591e9e6f..e9fc0a4383 100644
--- a/ext/standard/tests/strings/printf_error.phpt
+++ b/ext/standard/tests/strings/printf_error.phpt
@@ -61,7 +61,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing printf() : error conditions ***
 
 -- Testing printf() function with Zero arguments --
diff --git a/ext/standard/tests/strings/rtrim.phpt b/ext/standard/tests/strings/rtrim.phpt
index 223a839f58..2fc531faad 100644
--- a/ext/standard/tests/strings/rtrim.phpt
+++ b/ext/standard/tests/strings/rtrim.phpt
@@ -42,7 +42,7 @@ var_dump( rtrim($str, "ing") );
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Output for Normal Behaviour ***
 string(10) "rtrim test"
 string(13) "rtrim test   "
diff --git a/ext/standard/tests/strings/soundex.phpt b/ext/standard/tests/strings/soundex.phpt
index ef61ac495e..c4acc2ff68 100644
--- a/ext/standard/tests/strings/soundex.phpt
+++ b/ext/standard/tests/strings/soundex.phpt
@@ -30,7 +30,7 @@ foreach ($array as $str) {
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 bool(false)
 string(4) "0000"
 string(4) "F650"
diff --git a/ext/standard/tests/strings/sprintf_variation15.phpt b/ext/standard/tests/strings/sprintf_variation15.phpt
index 07774a92ec..66d85647ff 100644
--- a/ext/standard/tests/strings/sprintf_variation15.phpt
+++ b/ext/standard/tests/strings/sprintf_variation15.phpt
@@ -74,7 +74,7 @@ foreach($string_values as $string_value) {
 
 echo "Done";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing sprintf() : string formats with string values ***
 
 -- Iteration 1 --
diff --git a/ext/standard/tests/strings/sscanf_error.phpt b/ext/standard/tests/strings/sscanf_error.phpt
index ffaefb8418..0af8f9ed14 100644
--- a/ext/standard/tests/strings/sscanf_error.phpt
+++ b/ext/standard/tests/strings/sscanf_error.phpt
@@ -20,7 +20,7 @@ try {
     echo $exception->getMessage() . "\n";
 }
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing sscanf() : error conditions ***
 
 -- Testing sscanf() function with more than expected no. of arguments --
diff --git a/ext/standard/tests/strings/str_ireplace.phpt b/ext/standard/tests/strings/str_ireplace.phpt
index a5a35769e4..c360004a14 100644
--- a/ext/standard/tests/strings/str_ireplace.phpt
+++ b/ext/standard/tests/strings/str_ireplace.phpt
@@ -44,7 +44,7 @@ var_dump($Data = str_ireplace("\n", "<br>", $Data));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 string(0) ""
 string(8) "aaaaaaaT"
 string(8) "aaaaaaaT"
diff --git a/ext/standard/tests/strings/stristr.phpt b/ext/standard/tests/strings/stristr.phpt
index 7b1b5312a1..09e6cff53c 100644
--- a/ext/standard/tests/strings/stristr.phpt
+++ b/ext/standard/tests/strings/stristr.phpt
@@ -14,7 +14,7 @@ stristr() function
     var_dump(md5(stristr("\\\\a\\", "\\a")));
     var_dump(stristr("tEsT sTrInG", " "));
 ?>
---EXPECTF--
+--EXPECT--
 string(11) "tEsT sTrInG"
 string(6) "sTrInG"
 string(6) "sTrInG"
diff --git a/ext/standard/tests/strings/strrchr_variation1.phpt b/ext/standard/tests/strings/strrchr_variation1.phpt
index a75dd96bbf..f28571ba7f 100644
--- a/ext/standard/tests/strings/strrchr_variation1.phpt
+++ b/ext/standard/tests/strings/strrchr_variation1.phpt
@@ -81,7 +81,7 @@ for($index=0; $index<count($needle); $index++) {
 }
 echo "*** Done ***";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing strrchr() function: with various double quoted strings ***
 -- Iteration 1 --
 string(16) "lo123456he #4 A "
diff --git a/ext/standard/tests/strings/strrchr_variation2.phpt b/ext/standard/tests/strings/strrchr_variation2.phpt
index 2ff6720fb9..e6e510dd55 100644
--- a/ext/standard/tests/strings/strrchr_variation2.phpt
+++ b/ext/standard/tests/strings/strrchr_variation2.phpt
@@ -81,7 +81,7 @@ for($index=0; $index<count($needle); $index++) {
 }
 echo "*** Done ***";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing strrchr() function: with various single quoted strings ***
 -- Iteration 1 --
 string(22) "lo123456he \x234 \101 "
diff --git a/ext/standard/tests/strings/strtolower.phpt b/ext/standard/tests/strings/strtolower.phpt
index 7c7e2bb4c7..041b66a00c 100644
--- a/ext/standard/tests/strings/strtolower.phpt
+++ b/ext/standard/tests/strings/strtolower.phpt
@@ -65,7 +65,7 @@ else
 
 echo "*** Done ***";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing strtolower() with 128 chars ***
 00 => 00
 01 => 01
diff --git a/ext/standard/tests/strings/strtoupper1.phpt b/ext/standard/tests/strings/strtoupper1.phpt
index c243ff10c7..6c7434ba16 100644
--- a/ext/standard/tests/strings/strtoupper1.phpt
+++ b/ext/standard/tests/strings/strtoupper1.phpt
@@ -65,7 +65,7 @@ else
 
 echo "*** Done ***";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing strtoupper() with 128 chars ***
 00 => 00
 01 => 01
diff --git a/ext/standard/tests/strings/strval_error.phpt b/ext/standard/tests/strings/strval_error.phpt
index a363e26f24..88cca824a6 100644
--- a/ext/standard/tests/strings/strval_error.phpt
+++ b/ext/standard/tests/strings/strval_error.phpt
@@ -25,7 +25,7 @@ try {
 }
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing strval() : error conditions ***
 
 -- Testing strval() function with object which has not toString() method  --
diff --git a/ext/standard/tests/strings/substr.phpt b/ext/standard/tests/strings/substr.phpt
index fe687ed1ae..6028c17008 100644
--- a/ext/standard/tests/strings/substr.phpt
+++ b/ext/standard/tests/strings/substr.phpt
@@ -66,7 +66,7 @@ var_dump (substr("abcdef" , 2, NULL) );
 echo"\nDone";
 
 ?>
---EXPECTF--
+--EXPECT--
 --- Iteration 1 ---
 
 -- Variations for two arguments --
diff --git a/ext/standard/tests/strings/trim1.phpt b/ext/standard/tests/strings/trim1.phpt
index 1ad504c61d..a31d7213a1 100644
--- a/ext/standard/tests/strings/trim1.phpt
+++ b/ext/standard/tests/strings/trim1.phpt
@@ -49,7 +49,7 @@ var_dump( trim($str, "us\ning") );
 
 echo "\nDone";
 ?>
---EXPECTF--
+--EXPECT--
 string(0) ""
 string(0) ""
 string(1) "0"
diff --git a/ext/standard/tests/strings/vfprintf_error1.phpt b/ext/standard/tests/strings/vfprintf_error1.phpt
index f2057ea388..fdaecd6fb3 100644
--- a/ext/standard/tests/strings/vfprintf_error1.phpt
+++ b/ext/standard/tests/strings/vfprintf_error1.phpt
@@ -42,7 +42,7 @@ $file = 'vfprintf_error1.txt';
 unlink( $file );
 
 ?>
---EXPECTF--
+--EXPECT--
 -- Testing vfprintf() function with more than expected no. of arguments --
 Wrong parameter count for vfprintf()
 Wrong parameter count for vfprintf()
diff --git a/ext/standard/tests/time/strptime_error.phpt b/ext/standard/tests/time/strptime_error.phpt
index d7eb11fc55..87965cd1a2 100644
--- a/ext/standard/tests/time/strptime_error.phpt
+++ b/ext/standard/tests/time/strptime_error.phpt
@@ -24,7 +24,7 @@ $format = '%b %d %Y %H:%M:%S';
 var_dump( strptime('foo', $format) );
 
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing strptime() : error conditions ***
 
 -- Testing strptime() function on failure --
diff --git a/ext/tokenizer/tests/001.phpt b/ext/tokenizer/tests/001.phpt
index 8e58c81891..006377d5e9 100644
--- a/ext/tokenizer/tests/001.phpt
+++ b/ext/tokenizer/tests/001.phpt
@@ -129,7 +129,7 @@ echo token_name(0x8000000F), "\n";
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 T_INCLUDE
 T_INCLUDE_ONCE
 T_EVAL
diff --git a/ext/xmlreader/tests/static.phpt b/ext/xmlreader/tests/static.phpt
index 1c6cb5b870..a722e31105 100644
--- a/ext/xmlreader/tests/static.phpt
+++ b/ext/xmlreader/tests/static.phpt
@@ -22,7 +22,7 @@ while ($reader->read()) {
     echo $reader->name, "\n";
 }
 ?>
---EXPECTF--
+--EXPECT--
 books
 books
 books
diff --git a/ext/xmlwriter/tests/bug41326.phpt b/ext/xmlwriter/tests/bug41326.phpt
index 886e149261..c04ffe3167 100644
--- a/ext/xmlwriter/tests/bug41326.phpt
+++ b/ext/xmlwriter/tests/bug41326.phpt
@@ -35,7 +35,7 @@ $xw->endElement();
 $xw->endDocument();
 print $xw->flush(true);
 ?>
---EXPECTF--
+--EXPECT--
 <?xml version="1.0"?>
 <test>
  <foo/>
diff --git a/tests/output/stream_isatty_err.phpt b/tests/output/stream_isatty_err.phpt
index 55a25f1c9f..e7c1038350 100644
--- a/tests/output/stream_isatty_err.phpt
+++ b/tests/output/stream_isatty_err.phpt
@@ -13,7 +13,7 @@ STDERR
 require __DIR__.'/stream_isatty.inc';
 testToStdErr();
 ?>
---EXPECTF--
+--EXPECT--
 STDIN (constant): bool(true)
 STDIN (fopen): bool(true)
 STDIN (php://fd/0): bool(true)
diff --git a/tests/output/stream_isatty_in-err.phpt b/tests/output/stream_isatty_in-err.phpt
index 2554eb4689..73514955d4 100644
--- a/tests/output/stream_isatty_in-err.phpt
+++ b/tests/output/stream_isatty_in-err.phpt
@@ -13,7 +13,7 @@ STDIN STDERR
 require __DIR__.'/stream_isatty.inc';
 testToStdErr();
 ?>
---EXPECTF--
+--EXPECT--
 STDIN (constant): bool(false)
 STDIN (fopen): bool(false)
 STDIN (php://fd/0): bool(false)
diff --git a/tests/output/stream_isatty_in-out-err.phpt b/tests/output/stream_isatty_in-out-err.phpt
index 496bdd100e..9b65e8861b 100644
--- a/tests/output/stream_isatty_in-out-err.phpt
+++ b/tests/output/stream_isatty_in-out-err.phpt
@@ -13,7 +13,7 @@ STDIN STDOUT STDERR
 require __DIR__.'/stream_isatty.inc';
 testToStdOut();
 ?>
---EXPECTF--
+--EXPECT--
 STDIN (constant): bool(false)
 STDIN (fopen): bool(false)
 STDIN (php://fd/0): bool(false)
diff --git a/tests/output/stream_isatty_in-out.phpt b/tests/output/stream_isatty_in-out.phpt
index d58e9aa05c..c2bb346854 100644
--- a/tests/output/stream_isatty_in-out.phpt
+++ b/tests/output/stream_isatty_in-out.phpt
@@ -13,7 +13,7 @@ STDIN STDOUT
 require __DIR__.'/stream_isatty.inc';
 testToStdOut();
 ?>
---EXPECTF--
+--EXPECT--
 STDIN (constant): bool(false)
 STDIN (fopen): bool(false)
 STDIN (php://fd/0): bool(false)
diff --git a/tests/output/stream_isatty_out-err.phpt b/tests/output/stream_isatty_out-err.phpt
index e3ec1237bc..dc113a9720 100644
--- a/tests/output/stream_isatty_out-err.phpt
+++ b/tests/output/stream_isatty_out-err.phpt
@@ -13,7 +13,7 @@ STDOUT STDERR
 require __DIR__.'/stream_isatty.inc';
 testToStdOut();
 ?>
---EXPECTF--
+--EXPECT--
 STDIN (constant): bool(true)
 STDIN (fopen): bool(true)
 STDIN (php://fd/0): bool(true)
diff --git a/tests/output/stream_isatty_out.phpt b/tests/output/stream_isatty_out.phpt
index 3ea4996ac4..f18c986c5a 100644
--- a/tests/output/stream_isatty_out.phpt
+++ b/tests/output/stream_isatty_out.phpt
@@ -13,7 +13,7 @@ STDOUT
 require __DIR__.'/stream_isatty.inc';
 testToStdOut();
 ?>
---EXPECTF--
+--EXPECT--
 STDIN (constant): bool(true)
 STDIN (fopen): bool(true)
 STDIN (php://fd/0): bool(true)

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Mon Apr 27 21:01:47 2020 +0200
#
# On branch tests/use-simpler-expect-section
# Your branch and 'fork/tests/use-simpler-expect-section' have diverged,
# and have 1 and 1 different commits each, respectively.
#   (use "git pull" to merge the remote branch into yours)
#
# Changes to be committed:
#	modified:   Zend/tests/005.phpt
#	modified:   Zend/tests/bug27669.phpt
#	modified:   Zend/tests/bug51827.phpt
#	modified:   Zend/tests/bug63206.phpt
#	modified:   Zend/tests/bug63206_1.phpt
#	modified:   Zend/tests/bug63206_2.phpt
#	modified:   Zend/tests/incompat_ctx_user.phpt
#	modified:   Zend/tests/instanceof_001.phpt
#	modified:   Zend/tests/unexpected_ref_bug.phpt
#	modified:   ext/date/tests/012.phpt
#	modified:   ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt
#	modified:   ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
#	modified:   ext/date/tests/date_parse_001.phpt
#	modified:   ext/date/tests/date_parse_error.phpt
#	modified:   ext/date/tests/gmmktime_basic.phpt
#	modified:   ext/date/tests/mktime_error.phpt
#	modified:   ext/date/tests/timezone_abbreviations_list_basic1.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic.phpt
#	modified:   ext/filter/tests/007.phpt
#	modified:   ext/filter/tests/008.phpt
#	modified:   ext/filter/tests/010.phpt
#	modified:   ext/hash/tests/hash_hkdf_edges.phpt
#	modified:   ext/hash/tests/hash_hmac_file_basic.phpt
#	modified:   ext/json/tests/json_last_error_msg_error.phpt
#	modified:   ext/libxml/tests/bug76777.phpt
#	modified:   ext/pcre/tests/preg_replace_error2.phpt
#	modified:   ext/pcre/tests/split2.phpt
#	modified:   ext/phar/tests/phar_isvalidpharfilename.phpt
#	modified:   ext/phar/tests/pharfileinfo_chmod.phpt
#	modified:   ext/phar/tests/pharfileinfo_setmetadata.phpt
#	modified:   ext/phar/tests/stat2_5.3.phpt
#	modified:   ext/posix/tests/posix_getgrgid_error.phpt
#	modified:   ext/posix/tests/posix_getpgid_error.phpt
#	modified:   ext/posix/tests/posix_getpwuid_error.phpt
#	modified:   ext/posix/tests/posix_getsid_error.phpt
#	modified:   ext/posix/tests/posix_initgroups.phpt
#	modified:   ext/posix/tests/posix_kill_error.phpt
#	modified:   ext/posix/tests/posix_strerror_error.phpt
#	modified:   ext/reflection/tests/ReflectionClass_hasProperty_002.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_getClosure_error.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt
#	modified:   ext/reflection/tests/ReflectionObject_getName_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_setValue_error.phpt
#	modified:   ext/session/tests/bug79221.phpt
#	modified:   ext/session/tests/session_cache_limiter_error.phpt
#	modified:   ext/spl/tests/bug61347.phpt
#	modified:   ext/spl/tests/fileobject_005.phpt
#	modified:   ext/spl/tests/iterator_045.phpt
#	modified:   ext/spl/tests/regexIterator_setMode_error.phpt
#	modified:   ext/spl/tests/spl_heap_is_empty_basic.phpt
#	modified:   ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt
#	modified:   ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt
#	modified:   ext/standard/tests/array/005.phpt
#	modified:   ext/standard/tests/array/009.phpt
#	modified:   ext/standard/tests/array/array_diff_assoc_error.phpt
#	modified:   ext/standard/tests/array/array_diff_error.phpt
#	modified:   ext/standard/tests/array/array_diff_key_error.phpt
#	modified:   ext/standard/tests/array/array_filter.phpt
#	modified:   ext/standard/tests/array/array_filter_variation10.phpt
#	modified:   ext/standard/tests/array/array_key_exists_variation3.phpt
#	modified:   ext/standard/tests/array/array_map_error.phpt
#	modified:   ext/standard/tests/array/array_merge.phpt
#	modified:   ext/standard/tests/array/array_push.phpt
#	modified:   ext/standard/tests/array/array_slice.phpt
#	modified:   ext/standard/tests/array/array_unshift.phpt
#	modified:   ext/standard/tests/array/array_walk.phpt
#	modified:   ext/standard/tests/array/array_walk_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive1.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_variation7.phpt
#	modified:   ext/standard/tests/array/array_walk_variation7.phpt
#	modified:   ext/standard/tests/array/uasort_variation8.phpt
#	modified:   ext/standard/tests/array/usort_variation8.phpt
#	modified:   ext/standard/tests/assert/assert_variation.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_1.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_2.phpt
#	modified:   ext/standard/tests/file/basename.phpt
#	modified:   ext/standard/tests/file/fscanf.phpt
#	modified:   ext/standard/tests/file/fscanf_variation10.phpt
#	modified:   ext/standard/tests/file/is_dir_variation3.phpt
#	modified:   ext/standard/tests/file/is_executable_error.phpt
#	modified:   ext/standard/tests/file/is_executable_variation3.phpt
#	modified:   ext/standard/tests/file/is_file_variation3.phpt
#	modified:   ext/standard/tests/file/is_readable_error.phpt
#	modified:   ext/standard/tests/file/is_readable_variation3.phpt
#	modified:   ext/standard/tests/file/is_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/file/is_writable_error.phpt
#	modified:   ext/standard/tests/file/is_writable_variation3.phpt
#	modified:   ext/standard/tests/file/move_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/general_functions/get_include_path_basic.phpt
#	modified:   ext/standard/tests/general_functions/include_path.phpt
#	modified:   ext/standard/tests/general_functions/is_array.phpt
#	modified:   ext/standard/tests/general_functions/is_bool.phpt
#	modified:   ext/standard/tests/general_functions/is_float_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_int_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_null.phpt
#	modified:   ext/standard/tests/general_functions/is_numeric.phpt
#	modified:   ext/standard/tests/general_functions/is_object.phpt
#	modified:   ext/standard/tests/general_functions/is_scalar.phpt
#	modified:   ext/standard/tests/general_functions/is_string.phpt
#	modified:   ext/standard/tests/general_functions/ob_get_length_basic.phpt
#	modified:   ext/standard/tests/general_functions/php_uname_error.phpt
#	modified:   ext/standard/tests/general_functions/print_r.phpt
#	modified:   ext/standard/tests/general_functions/print_r_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_dump_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_export-locale.phpt
#	modified:   ext/standard/tests/image/image_type_to_extension.phpt
#	modified:   ext/standard/tests/math/lcg_value_basic.phpt
#	modified:   ext/standard/tests/network/inet.phpt
#	modified:   ext/standard/tests/network/ip_x86_64.phpt
#	modified:   ext/standard/tests/random/random_int.phpt
#	modified:   ext/standard/tests/serialize/bug45706.phpt
#	modified:   ext/standard/tests/streams/bug61115.phpt
#	modified:   ext/standard/tests/streams/bug78662.phpt
#	modified:   ext/standard/tests/streams/stream_set_timeout_error.phpt
#	modified:   ext/standard/tests/strings/chr_error.phpt
#	modified:   ext/standard/tests/strings/fprintf_error.phpt
#	modified:   ext/standard/tests/strings/htmlentities24.phpt
#	modified:   ext/standard/tests/strings/htmlspecialchars.phpt
#	modified:   ext/standard/tests/strings/ltrim.phpt
#	modified:   ext/standard/tests/strings/metaphone.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic1.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic3.phpt
#	modified:   ext/standard/tests/strings/printf_error.phpt
#	modified:   ext/standard/tests/strings/rtrim.phpt
#	modified:   ext/standard/tests/strings/soundex.phpt
#	modified:   ext/standard/tests/strings/sprintf_variation15.phpt
#	modified:   ext/standard/tests/strings/sscanf_error.phpt
#	modified:   ext/standard/tests/strings/str_ireplace.phpt
#	modified:   ext/standard/tests/strings/stristr.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation1.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation2.phpt
#	modified:   ext/standard/tests/strings/strtolower.phpt
#	modified:   ext/standard/tests/strings/strtoupper1.phpt
#	modified:   ext/standard/tests/strings/strval_error.phpt
#	modified:   ext/standard/tests/strings/substr.phpt
#	modified:   ext/standard/tests/strings/trim1.phpt
#	modified:   ext/standard/tests/strings/vfprintf_error1.phpt
#	modified:   ext/standard/tests/time/strptime_error.phpt
#	modified:   ext/tokenizer/tests/001.phpt
#	modified:   ext/xmlreader/tests/static.phpt
#	modified:   ext/xmlwriter/tests/bug41326.phpt
#	modified:   tests/output/stream_isatty_err.phpt
#	modified:   tests/output/stream_isatty_in-err.phpt
#	modified:   tests/output/stream_isatty_in-out-err.phpt
#	modified:   tests/output/stream_isatty_in-out.phpt
#	modified:   tests/output/stream_isatty_out-err.phpt
#	modified:   tests/output/stream_isatty_out.phpt
#
# Changes not staged for commit:
#	modified:   run-tests.php
#

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Mon Apr 27 21:01:47 2020 +0200
#
# On branch tests/use-simpler-expect-section
# Your branch is up to date with 'fork/tests/use-simpler-expect-section'.
#
# Changes to be committed:
#	modified:   Zend/tests/005.phpt
#	modified:   Zend/tests/bug27669.phpt
#	modified:   Zend/tests/bug51827.phpt
#	modified:   Zend/tests/bug63206.phpt
#	modified:   Zend/tests/bug63206_1.phpt
#	modified:   Zend/tests/bug63206_2.phpt
#	modified:   Zend/tests/incompat_ctx_user.phpt
#	modified:   Zend/tests/instanceof_001.phpt
#	modified:   Zend/tests/unexpected_ref_bug.phpt
#	modified:   ext/date/tests/012.phpt
#	modified:   ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt
#	modified:   ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
#	modified:   ext/date/tests/date_parse_001.phpt
#	modified:   ext/date/tests/date_parse_error.phpt
#	modified:   ext/date/tests/gmmktime_basic.phpt
#	modified:   ext/date/tests/mktime_error.phpt
#	modified:   ext/date/tests/timezone_abbreviations_list_basic1.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic.phpt
#	modified:   ext/filter/tests/007.phpt
#	modified:   ext/filter/tests/008.phpt
#	modified:   ext/filter/tests/010.phpt
#	modified:   ext/hash/tests/hash_hkdf_edges.phpt
#	modified:   ext/hash/tests/hash_hmac_file_basic.phpt
#	modified:   ext/json/tests/json_last_error_msg_error.phpt
#	modified:   ext/libxml/tests/bug76777.phpt
#	modified:   ext/pcre/tests/preg_replace_error2.phpt
#	modified:   ext/pcre/tests/split2.phpt
#	modified:   ext/phar/tests/phar_isvalidpharfilename.phpt
#	modified:   ext/phar/tests/pharfileinfo_chmod.phpt
#	modified:   ext/phar/tests/pharfileinfo_setmetadata.phpt
#	modified:   ext/phar/tests/stat2_5.3.phpt
#	modified:   ext/posix/tests/posix_getgrgid_error.phpt
#	modified:   ext/posix/tests/posix_getpgid_error.phpt
#	modified:   ext/posix/tests/posix_getpwuid_error.phpt
#	modified:   ext/posix/tests/posix_getsid_error.phpt
#	modified:   ext/posix/tests/posix_initgroups.phpt
#	modified:   ext/posix/tests/posix_kill_error.phpt
#	modified:   ext/posix/tests/posix_strerror_error.phpt
#	modified:   ext/reflection/tests/ReflectionClass_hasProperty_002.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_getClosure_error.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt
#	modified:   ext/reflection/tests/ReflectionObject_getName_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_setValue_error.phpt
#	modified:   ext/session/tests/bug79221.phpt
#	modified:   ext/session/tests/session_cache_limiter_error.phpt
#	modified:   ext/spl/tests/bug61347.phpt
#	modified:   ext/spl/tests/fileobject_005.phpt
#	modified:   ext/spl/tests/iterator_045.phpt
#	modified:   ext/spl/tests/regexIterator_setMode_error.phpt
#	modified:   ext/spl/tests/spl_heap_is_empty_basic.phpt
#	modified:   ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt
#	modified:   ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt
#	modified:   ext/standard/tests/array/005.phpt
#	modified:   ext/standard/tests/array/009.phpt
#	modified:   ext/standard/tests/array/array_diff_assoc_error.phpt
#	modified:   ext/standard/tests/array/array_diff_error.phpt
#	modified:   ext/standard/tests/array/array_diff_key_error.phpt
#	modified:   ext/standard/tests/array/array_filter.phpt
#	modified:   ext/standard/tests/array/array_filter_variation10.phpt
#	modified:   ext/standard/tests/array/array_key_exists_variation3.phpt
#	modified:   ext/standard/tests/array/array_map_error.phpt
#	modified:   ext/standard/tests/array/array_merge.phpt
#	modified:   ext/standard/tests/array/array_push.phpt
#	modified:   ext/standard/tests/array/array_slice.phpt
#	modified:   ext/standard/tests/array/array_unshift.phpt
#	modified:   ext/standard/tests/array/array_walk.phpt
#	modified:   ext/standard/tests/array/array_walk_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive1.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_variation7.phpt
#	modified:   ext/standard/tests/array/array_walk_variation7.phpt
#	modified:   ext/standard/tests/array/uasort_variation8.phpt
#	modified:   ext/standard/tests/array/usort_variation8.phpt
#	modified:   ext/standard/tests/assert/assert_variation.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_1.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_2.phpt
#	modified:   ext/standard/tests/file/basename.phpt
#	modified:   ext/standard/tests/file/fscanf.phpt
#	modified:   ext/standard/tests/file/fscanf_variation10.phpt
#	modified:   ext/standard/tests/file/is_dir_variation3.phpt
#	modified:   ext/standard/tests/file/is_executable_error.phpt
#	modified:   ext/standard/tests/file/is_executable_variation3.phpt
#	modified:   ext/standard/tests/file/is_file_variation3.phpt
#	modified:   ext/standard/tests/file/is_readable_error.phpt
#	modified:   ext/standard/tests/file/is_readable_variation3.phpt
#	modified:   ext/standard/tests/file/is_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/file/is_writable_error.phpt
#	modified:   ext/standard/tests/file/is_writable_variation3.phpt
#	modified:   ext/standard/tests/file/move_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/general_functions/get_include_path_basic.phpt
#	modified:   ext/standard/tests/general_functions/include_path.phpt
#	modified:   ext/standard/tests/general_functions/is_array.phpt
#	modified:   ext/standard/tests/general_functions/is_bool.phpt
#	modified:   ext/standard/tests/general_functions/is_float_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_int_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_null.phpt
#	modified:   ext/standard/tests/general_functions/is_numeric.phpt
#	modified:   ext/standard/tests/general_functions/is_object.phpt
#	modified:   ext/standard/tests/general_functions/is_scalar.phpt
#	modified:   ext/standard/tests/general_functions/is_string.phpt
#	modified:   ext/standard/tests/general_functions/ob_get_length_basic.phpt
#	modified:   ext/standard/tests/general_functions/php_uname_error.phpt
#	modified:   ext/standard/tests/general_functions/print_r.phpt
#	modified:   ext/standard/tests/general_functions/print_r_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_dump_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_export-locale.phpt
#	modified:   ext/standard/tests/image/image_type_to_extension.phpt
#	modified:   ext/standard/tests/math/lcg_value_basic.phpt
#	modified:   ext/standard/tests/network/inet.phpt
#	modified:   ext/standard/tests/network/ip_x86_64.phpt
#	modified:   ext/standard/tests/random/random_int.phpt
#	modified:   ext/standard/tests/serialize/bug45706.phpt
#	modified:   ext/standard/tests/streams/bug61115.phpt
#	modified:   ext/standard/tests/streams/bug78662.phpt
#	modified:   ext/standard/tests/streams/stream_set_timeout_error.phpt
#	modified:   ext/standard/tests/strings/chr_error.phpt
#	modified:   ext/standard/tests/strings/fprintf_error.phpt
#	modified:   ext/standard/tests/strings/htmlentities24.phpt
#	modified:   ext/standard/tests/strings/htmlspecialchars.phpt
#	modified:   ext/standard/tests/strings/ltrim.phpt
#	modified:   ext/standard/tests/strings/metaphone.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic1.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic3.phpt
#	modified:   ext/standard/tests/strings/printf_error.phpt
#	modified:   ext/standard/tests/strings/rtrim.phpt
#	modified:   ext/standard/tests/strings/soundex.phpt
#	modified:   ext/standard/tests/strings/sprintf_variation15.phpt
#	modified:   ext/standard/tests/strings/sscanf_error.phpt
#	modified:   ext/standard/tests/strings/str_ireplace.phpt
#	modified:   ext/standard/tests/strings/stristr.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation1.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation2.phpt
#	modified:   ext/standard/tests/strings/strtolower.phpt
#	modified:   ext/standard/tests/strings/strtoupper1.phpt
#	modified:   ext/standard/tests/strings/strval_error.phpt
#	modified:   ext/standard/tests/strings/substr.phpt
#	modified:   ext/standard/tests/strings/trim1.phpt
#	modified:   ext/standard/tests/strings/vfprintf_error1.phpt
#	modified:   ext/standard/tests/time/strptime_error.phpt
#	modified:   ext/tokenizer/tests/001.phpt
#	modified:   ext/xmlreader/tests/static.phpt
#	modified:   ext/xmlwriter/tests/bug41326.phpt
#	modified:   tests/output/stream_isatty_err.phpt
#	modified:   tests/output/stream_isatty_in-err.phpt
#	modified:   tests/output/stream_isatty_in-out-err.phpt
#	modified:   tests/output/stream_isatty_in-out.phpt
#	modified:   tests/output/stream_isatty_out-err.phpt
#	modified:   tests/output/stream_isatty_out.phpt
#
# Changes not staged for commit:
#	modified:   run-tests.php
#

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Mon Apr 27 21:01:47 2020 +0200
#
# On branch tests/use-simpler-expect-section
# Your branch is up to date with 'fork/tests/use-simpler-expect-section'.
#
# Changes to be committed:
#	modified:   Zend/tests/005.phpt
#	modified:   Zend/tests/bug27669.phpt
#	modified:   Zend/tests/bug51827.phpt
#	modified:   Zend/tests/bug63206.phpt
#	modified:   Zend/tests/bug63206_1.phpt
#	modified:   Zend/tests/bug63206_2.phpt
#	modified:   Zend/tests/incompat_ctx_user.phpt
#	modified:   Zend/tests/instanceof_001.phpt
#	modified:   Zend/tests/unexpected_ref_bug.phpt
#	modified:   ext/date/tests/012.phpt
#	modified:   ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt
#	modified:   ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
#	modified:   ext/date/tests/date_parse_001.phpt
#	modified:   ext/date/tests/date_parse_error.phpt
#	modified:   ext/date/tests/gmmktime_basic.phpt
#	modified:   ext/date/tests/mktime_error.phpt
#	modified:   ext/date/tests/timezone_abbreviations_list_basic1.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt
#	modified:   ext/fileinfo/tests/finfo_set_flags_basic.phpt
#	modified:   ext/filter/tests/007.phpt
#	modified:   ext/filter/tests/008.phpt
#	modified:   ext/filter/tests/010.phpt
#	modified:   ext/hash/tests/hash_hkdf_edges.phpt
#	modified:   ext/hash/tests/hash_hmac_file_basic.phpt
#	modified:   ext/json/tests/json_last_error_msg_error.phpt
#	modified:   ext/libxml/tests/bug76777.phpt
#	modified:   ext/pcre/tests/preg_replace_error2.phpt
#	modified:   ext/pcre/tests/split2.phpt
#	modified:   ext/phar/tests/phar_isvalidpharfilename.phpt
#	modified:   ext/phar/tests/pharfileinfo_chmod.phpt
#	modified:   ext/phar/tests/pharfileinfo_setmetadata.phpt
#	modified:   ext/phar/tests/stat2_5.3.phpt
#	modified:   ext/posix/tests/posix_getgrgid_error.phpt
#	modified:   ext/posix/tests/posix_getpgid_error.phpt
#	modified:   ext/posix/tests/posix_getpwuid_error.phpt
#	modified:   ext/posix/tests/posix_getsid_error.phpt
#	modified:   ext/posix/tests/posix_initgroups.phpt
#	modified:   ext/posix/tests/posix_kill_error.phpt
#	modified:   ext/posix/tests/posix_strerror_error.phpt
#	modified:   ext/reflection/tests/ReflectionClass_hasProperty_002.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_getClosure_error.phpt
#	modified:   ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt
#	modified:   ext/reflection/tests/ReflectionObject_getName_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt
#	modified:   ext/reflection/tests/ReflectionProperty_setValue_error.phpt
#	modified:   ext/session/tests/bug79221.phpt
#	modified:   ext/session/tests/session_cache_limiter_error.phpt
#	modified:   ext/spl/tests/bug61347.phpt
#	modified:   ext/spl/tests/fileobject_005.phpt
#	modified:   ext/spl/tests/iterator_045.phpt
#	modified:   ext/spl/tests/regexIterator_setMode_error.phpt
#	modified:   ext/spl/tests/spl_heap_is_empty_basic.phpt
#	modified:   ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt
#	modified:   ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt
#	modified:   ext/standard/tests/array/005.phpt
#	modified:   ext/standard/tests/array/009.phpt
#	modified:   ext/standard/tests/array/array_diff_assoc_error.phpt
#	modified:   ext/standard/tests/array/array_diff_error.phpt
#	modified:   ext/standard/tests/array/array_diff_key_error.phpt
#	modified:   ext/standard/tests/array/array_filter.phpt
#	modified:   ext/standard/tests/array/array_filter_variation10.phpt
#	modified:   ext/standard/tests/array/array_key_exists_variation3.phpt
#	modified:   ext/standard/tests/array/array_map_error.phpt
#	modified:   ext/standard/tests/array/array_merge.phpt
#	modified:   ext/standard/tests/array/array_push.phpt
#	modified:   ext/standard/tests/array/array_slice.phpt
#	modified:   ext/standard/tests/array/array_unshift.phpt
#	modified:   ext/standard/tests/array/array_walk.phpt
#	modified:   ext/standard/tests/array/array_walk_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive1.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_error2.phpt
#	modified:   ext/standard/tests/array/array_walk_recursive_variation7.phpt
#	modified:   ext/standard/tests/array/array_walk_variation7.phpt
#	modified:   ext/standard/tests/array/uasort_variation8.phpt
#	modified:   ext/standard/tests/array/usort_variation8.phpt
#	modified:   ext/standard/tests/assert/assert_variation.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_1.phpt
#	modified:   ext/standard/tests/file/auto_detect_line_endings_2.phpt
#	modified:   ext/standard/tests/file/basename.phpt
#	modified:   ext/standard/tests/file/fscanf.phpt
#	modified:   ext/standard/tests/file/fscanf_variation10.phpt
#	modified:   ext/standard/tests/file/is_dir_variation3.phpt
#	modified:   ext/standard/tests/file/is_executable_error.phpt
#	modified:   ext/standard/tests/file/is_executable_variation3.phpt
#	modified:   ext/standard/tests/file/is_file_variation3.phpt
#	modified:   ext/standard/tests/file/is_readable_error.phpt
#	modified:   ext/standard/tests/file/is_readable_variation3.phpt
#	modified:   ext/standard/tests/file/is_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/file/is_writable_error.phpt
#	modified:   ext/standard/tests/file/is_writable_variation3.phpt
#	modified:   ext/standard/tests/file/move_uploaded_file_basic.phpt
#	modified:   ext/standard/tests/general_functions/get_include_path_basic.phpt
#	modified:   ext/standard/tests/general_functions/include_path.phpt
#	modified:   ext/standard/tests/general_functions/is_array.phpt
#	modified:   ext/standard/tests/general_functions/is_bool.phpt
#	modified:   ext/standard/tests/general_functions/is_float_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_int_64bit.phpt
#	modified:   ext/standard/tests/general_functions/is_null.phpt
#	modified:   ext/standard/tests/general_functions/is_numeric.phpt
#	modified:   ext/standard/tests/general_functions/is_object.phpt
#	modified:   ext/standard/tests/general_functions/is_scalar.phpt
#	modified:   ext/standard/tests/general_functions/is_string.phpt
#	modified:   ext/standard/tests/general_functions/ob_get_length_basic.phpt
#	modified:   ext/standard/tests/general_functions/php_uname_error.phpt
#	modified:   ext/standard/tests/general_functions/print_r.phpt
#	modified:   ext/standard/tests/general_functions/print_r_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_dump_64bit.phpt
#	modified:   ext/standard/tests/general_functions/var_export-locale.phpt
#	modified:   ext/standard/tests/image/image_type_to_extension.phpt
#	modified:   ext/standard/tests/math/lcg_value_basic.phpt
#	modified:   ext/standard/tests/network/inet.phpt
#	modified:   ext/standard/tests/network/ip_x86_64.phpt
#	modified:   ext/standard/tests/random/random_int.phpt
#	modified:   ext/standard/tests/serialize/bug45706.phpt
#	modified:   ext/standard/tests/streams/bug61115.phpt
#	modified:   ext/standard/tests/streams/bug78662.phpt
#	modified:   ext/standard/tests/streams/stream_set_timeout_error.phpt
#	modified:   ext/standard/tests/strings/chr_error.phpt
#	modified:   ext/standard/tests/strings/fprintf_error.phpt
#	modified:   ext/standard/tests/strings/htmlentities24.phpt
#	modified:   ext/standard/tests/strings/htmlspecialchars.phpt
#	modified:   ext/standard/tests/strings/ltrim.phpt
#	modified:   ext/standard/tests/strings/metaphone.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic1.phpt
#	modified:   ext/standard/tests/strings/parse_str_basic3.phpt
#	modified:   ext/standard/tests/strings/printf_error.phpt
#	modified:   ext/standard/tests/strings/rtrim.phpt
#	modified:   ext/standard/tests/strings/soundex.phpt
#	modified:   ext/standard/tests/strings/sprintf_variation15.phpt
#	modified:   ext/standard/tests/strings/sscanf_error.phpt
#	modified:   ext/standard/tests/strings/str_ireplace.phpt
#	modified:   ext/standard/tests/strings/stristr.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation1.phpt
#	modified:   ext/standard/tests/strings/strrchr_variation2.phpt
#	modified:   ext/standard/tests/strings/strtolower.phpt
#	modified:   ext/standard/tests/strings/strtoupper1.phpt
#	modified:   ext/standard/tests/strings/strval_error.phpt
#	modified:   ext/standard/tests/strings/substr.phpt
#	modified:   ext/standard/tests/strings/trim1.phpt
#	modified:   ext/standard/tests/strings/vfprintf_error1.phpt
#	modified:   ext/standard/tests/time/strptime_error.phpt
#	modified:   ext/tokenizer/tests/001.phpt
#	modified:   ext/xmlreader/tests/static.phpt
#	modified:   ext/xmlwriter/tests/bug41326.phpt
#	modified:   tests/output/stream_isatty_err.phpt
#	modified:   tests/output/stream_isatty_in-err.phpt
#	modified:   tests/output/stream_isatty_in-out-err.phpt
#	modified:   tests/output/stream_isatty_in-out.phpt
#	modified:   tests/output/stream_isatty_out-err.phpt
#	modified:   tests/output/stream_isatty_out.phpt
#
# Changes not staged for commit:
#	modified:   run-tests.php
#
2020-04-28 13:51:24 +08:00
Xinchen Hui d2c6bf203a Folder mark 2020-04-28 13:47:04 +08:00
Xinchen Hui a233e128a5 Use ascii lowercase if locale is default C 2020-04-28 11:33:02 +08:00
Xinchen Hui 5f900b3285 update NEWS 2020-04-28 11:13:33 +08:00
Xinchen Hui 6e2c1d7234 Merge branch 'sse2_strtolower' of https://github.com/laruence/php-src
* 'sse2_strtolower' of https://github.com/laruence/php-src:
  Also zend_str_tolower_dup_ex
  Remove unnecessary register qualifier
  SSE2 str_tolower
2020-04-28 11:11:58 +08:00
Xinchen Hui 11491b63f8 Also zend_str_tolower_dup_ex 2020-04-28 11:04:20 +08:00
Dmitry Stogov 5fe723c92d Fix libtool to provide a simple way to generate only "shared" object files or libraries.
- Support for "-shared" option is taken from libtool-2.0 that is already at lease 15 years old.
- Change PHP build system to use "-shared" instead of "--tag=disable-static".
2020-04-27 23:31:54 +03:00
Gabriel Caruso 5dafd7b4fe Use EXPECT instead of EXPECTF when possible EXPECTF logic in run tests is considerable, so lets avoid it # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch tests/use-simpler-expect-section # Your branch is behind 'fork/tests/use-simpler-expect-section' by 1 commit, and can be fast-forwarded. # (use "git pull" to update your local branch) # # Changes to be committed: # modified: Zend/tests/005.phpt # modified: Zend/tests/bug27669.phpt # modified: Zend/tests/bug51827.phpt # modified: Zend/tests/bug63206.phpt # modified: Zend/tests/bug63206_1.phpt # modified: Zend/tests/bug63206_2.phpt # modified: Zend/tests/incompat_ctx_user.phpt # modified: Zend/tests/instanceof_001.phpt # modified: Zend/tests/unexpected_ref_bug.phpt # modified: ext/date/tests/012.phpt # modified: ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt # modified: ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt # modified: ext/date/tests/date_parse_001.phpt # modified: ext/date/tests/date_parse_error.phpt # modified: ext/date/tests/gmmktime_basic.phpt # modified: ext/date/tests/mktime_error.phpt # modified: ext/date/tests/timezone_abbreviations_list_basic1.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic.phpt # modified: ext/filter/tests/007.phpt # modified: ext/filter/tests/008.phpt # modified: ext/filter/tests/010.phpt # modified: ext/hash/tests/hash_hkdf_edges.phpt # modified: ext/hash/tests/hash_hmac_file_basic.phpt # modified: ext/json/tests/json_last_error_msg_error.phpt # modified: ext/libxml/tests/bug76777.phpt # modified: ext/pcre/tests/preg_replace_error2.phpt # modified: ext/pcre/tests/split2.phpt # modified: ext/phar/tests/phar_isvalidpharfilename.phpt # modified: ext/phar/tests/pharfileinfo_chmod.phpt # modified: ext/phar/tests/pharfileinfo_setmetadata.phpt # modified: ext/phar/tests/stat2_5.3.phpt # modified: ext/posix/tests/posix_getgrgid_error.phpt # modified: ext/posix/tests/posix_getpgid_error.phpt # modified: ext/posix/tests/posix_getpwuid_error.phpt # modified: ext/posix/tests/posix_getsid_error.phpt # modified: ext/posix/tests/posix_initgroups.phpt # modified: ext/posix/tests/posix_kill_error.phpt # modified: ext/posix/tests/posix_strerror_error.phpt # modified: ext/reflection/tests/ReflectionClass_hasProperty_002.phpt # modified: ext/reflection/tests/ReflectionMethod_getClosure_error.phpt # modified: ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt # modified: ext/reflection/tests/ReflectionObject_getName_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_setValue_error.phpt # modified: ext/session/tests/bug79221.phpt # modified: ext/session/tests/session_cache_limiter_error.phpt # modified: ext/spl/tests/bug61347.phpt # modified: ext/spl/tests/fileobject_005.phpt # modified: ext/spl/tests/iterator_045.phpt # modified: ext/spl/tests/regexIterator_setMode_error.phpt # modified: ext/spl/tests/spl_heap_is_empty_basic.phpt # modified: ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt # modified: ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt # modified: ext/standard/tests/array/005.phpt # modified: ext/standard/tests/array/009.phpt # modified: ext/standard/tests/array/array_diff_assoc_error.phpt # modified: ext/standard/tests/array/array_diff_error.phpt # modified: ext/standard/tests/array/array_diff_key_error.phpt # modified: ext/standard/tests/array/array_filter.phpt # modified: ext/standard/tests/array/array_filter_variation10.phpt # modified: ext/standard/tests/array/array_key_exists_variation3.phpt # modified: ext/standard/tests/array/array_map_error.phpt # modified: ext/standard/tests/array/array_merge.phpt # modified: ext/standard/tests/array/array_push.phpt # modified: ext/standard/tests/array/array_slice.phpt # modified: ext/standard/tests/array/array_unshift.phpt # modified: ext/standard/tests/array/array_walk.phpt # modified: ext/standard/tests/array/array_walk_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive1.phpt # modified: ext/standard/tests/array/array_walk_recursive_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive_variation7.phpt # modified: ext/standard/tests/array/array_walk_variation7.phpt # modified: ext/standard/tests/array/uasort_variation8.phpt # modified: ext/standard/tests/array/usort_variation8.phpt # modified: ext/standard/tests/assert/assert_variation.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_1.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_2.phpt # modified: ext/standard/tests/file/basename.phpt # modified: ext/standard/tests/file/fscanf.phpt # modified: ext/standard/tests/file/fscanf_variation10.phpt # modified: ext/standard/tests/file/is_dir_variation3.phpt # modified: ext/standard/tests/file/is_executable_error.phpt # modified: ext/standard/tests/file/is_executable_variation3.phpt # modified: ext/standard/tests/file/is_file_variation3.phpt # modified: ext/standard/tests/file/is_readable_error.phpt # modified: ext/standard/tests/file/is_readable_variation3.phpt # modified: ext/standard/tests/file/is_uploaded_file_basic.phpt # modified: ext/standard/tests/file/is_writable_error.phpt # modified: ext/standard/tests/file/is_writable_variation3.phpt # modified: ext/standard/tests/file/move_uploaded_file_basic.phpt # modified: ext/standard/tests/general_functions/get_include_path_basic.phpt # modified: ext/standard/tests/general_functions/include_path.phpt # modified: ext/standard/tests/general_functions/is_array.phpt # modified: ext/standard/tests/general_functions/is_bool.phpt # modified: ext/standard/tests/general_functions/is_float_64bit.phpt # modified: ext/standard/tests/general_functions/is_int_64bit.phpt # modified: ext/standard/tests/general_functions/is_null.phpt # modified: ext/standard/tests/general_functions/is_numeric.phpt # modified: ext/standard/tests/general_functions/is_object.phpt # modified: ext/standard/tests/general_functions/is_scalar.phpt # modified: ext/standard/tests/general_functions/is_string.phpt # modified: ext/standard/tests/general_functions/ob_get_length_basic.phpt # modified: ext/standard/tests/general_functions/php_uname_error.phpt # modified: ext/standard/tests/general_functions/print_r.phpt # modified: ext/standard/tests/general_functions/print_r_64bit.phpt # modified: ext/standard/tests/general_functions/var_dump_64bit.phpt # modified: ext/standard/tests/general_functions/var_export-locale.phpt # modified: ext/standard/tests/image/image_type_to_extension.phpt # modified: ext/standard/tests/math/lcg_value_basic.phpt # modified: ext/standard/tests/network/inet.phpt # modified: ext/standard/tests/network/ip_x86_64.phpt # modified: ext/standard/tests/random/random_int.phpt # modified: ext/standard/tests/serialize/bug45706.phpt # modified: ext/standard/tests/streams/bug61115.phpt # modified: ext/standard/tests/streams/bug78662.phpt # modified: ext/standard/tests/streams/stream_set_timeout_error.phpt # modified: ext/standard/tests/strings/chr_error.phpt # modified: ext/standard/tests/strings/fprintf_error.phpt # modified: ext/standard/tests/strings/htmlentities24.phpt # modified: ext/standard/tests/strings/htmlspecialchars.phpt # modified: ext/standard/tests/strings/ltrim.phpt # modified: ext/standard/tests/strings/metaphone.phpt # modified: ext/standard/tests/strings/parse_str_basic1.phpt # modified: ext/standard/tests/strings/parse_str_basic3.phpt # modified: ext/standard/tests/strings/printf_error.phpt # modified: ext/standard/tests/strings/rtrim.phpt # modified: ext/standard/tests/strings/soundex.phpt # modified: ext/standard/tests/strings/sprintf_variation15.phpt # modified: ext/standard/tests/strings/sscanf_error.phpt # modified: ext/standard/tests/strings/str_ireplace.phpt # modified: ext/standard/tests/strings/stristr.phpt # modified: ext/standard/tests/strings/strrchr_variation1.phpt # modified: ext/standard/tests/strings/strrchr_variation2.phpt # modified: ext/standard/tests/strings/strtolower.phpt # modified: ext/standard/tests/strings/strtoupper1.phpt # modified: ext/standard/tests/strings/strval_error.phpt # modified: ext/standard/tests/strings/substr.phpt # modified: ext/standard/tests/strings/trim1.phpt # modified: ext/standard/tests/strings/vfprintf_error1.phpt # modified: ext/standard/tests/time/strptime_error.phpt # modified: ext/tokenizer/tests/001.phpt # modified: ext/xmlreader/tests/static.phpt # modified: ext/xmlwriter/tests/bug41326.phpt # modified: tests/output/stream_isatty_err.phpt # modified: tests/output/stream_isatty_in-err.phpt # modified: tests/output/stream_isatty_in-out-err.phpt # modified: tests/output/stream_isatty_in-out.phpt # modified: tests/output/stream_isatty_out-err.phpt # modified: tests/output/stream_isatty_out.phpt # # Changes not staged for commit: # modified: run-tests.php # # ------------------------ >8 ------------------------ # Do not modify or remove the line above. # Everything below it will be ignored. diff --git a/Zend/tests/005.phpt b/Zend/tests/005.phpt index f4abfb6c51..413f3205ad 100644 --- a/Zend/tests/005.phpt +++ b/Zend/tests/005.phpt @@ -13,7 +13,7 @@ var_dump(strcasecmp("01", "01")); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- int(0) int(-3) int(-1) diff --git a/Zend/tests/bug27669.phpt b/Zend/tests/bug27669.phpt index 7067c23e0d..9cd845e337 100644 --- a/Zend/tests/bug27669.phpt +++ b/Zend/tests/bug27669.phpt @@ -10,5 +10,5 @@ Bug #27669 (PHP 5 didn't support all possibilities for calling static methods dy $y[0] = 'hello'; A::{$y[0]}(); ?> ---EXPECTF-- +--EXPECT-- Hello World diff --git a/Zend/tests/bug51827.phpt b/Zend/tests/bug51827.phpt index 6c3d721716..1a2d9bdf39 100644 --- a/Zend/tests/bug51827.phpt +++ b/Zend/tests/bug51827.phpt @@ -13,7 +13,7 @@ register_shutdown_function('ABC'); register_shutdown_function('exploDe'); ?> ---EXPECTF-- +--EXPECT-- int(1) Fatal error: Uncaught ArgumentCountError: explode() expects at least 2 parameters, 0 given in [no active file]:0 diff --git a/Zend/tests/bug63206.phpt b/Zend/tests/bug63206.phpt index dc7bb1fd1d..6aba55eca1 100644 --- a/Zend/tests/bug63206.phpt +++ b/Zend/tests/bug63206.phpt @@ -22,7 +22,7 @@ set_error_handler(function() { $triggerNotice1++; $triggerNotice2++; ?> ---EXPECTF-- +--EXPECT-- Second handler Internal handler Second handler diff --git a/Zend/tests/bug63206_1.phpt b/Zend/tests/bug63206_1.phpt index f08f913824..d054211638 100644 --- a/Zend/tests/bug63206_1.phpt +++ b/Zend/tests/bug63206_1.phpt @@ -22,5 +22,5 @@ restore_error_handler(); $triggerNotice++; ?> ---EXPECTF-- +--EXPECT-- Second handler diff --git a/Zend/tests/bug63206_2.phpt b/Zend/tests/bug63206_2.phpt index 7a2bf38543..a4a67f577e 100644 --- a/Zend/tests/bug63206_2.phpt +++ b/Zend/tests/bug63206_2.phpt @@ -22,5 +22,5 @@ restore_exception_handler(); throw new Exception(); ?> ---EXPECTF-- +--EXPECT-- Second handler diff --git a/Zend/tests/incompat_ctx_user.phpt b/Zend/tests/incompat_ctx_user.phpt index 8c7461e4f7..3fe0456175 100644 --- a/Zend/tests/incompat_ctx_user.phpt +++ b/Zend/tests/incompat_ctx_user.phpt @@ -16,5 +16,5 @@ try { echo "Exception: " . $e->getMessage() . "\n"; } ?> ---EXPECTF-- +--EXPECT-- Exception: Non-static method A::foo() cannot be called statically diff --git a/Zend/tests/instanceof_001.phpt b/Zend/tests/instanceof_001.phpt index 27170420f0..02b7d59baf 100644 --- a/Zend/tests/instanceof_001.phpt +++ b/Zend/tests/instanceof_001.phpt @@ -17,7 +17,7 @@ var_dump($c[0] instanceof stdClass); var_dump(@$inexistent instanceof stdClass); ?> ---EXPECTF-- +--EXPECT-- bool(true) bool(true) bool(true) diff --git a/Zend/tests/unexpected_ref_bug.phpt b/Zend/tests/unexpected_ref_bug.phpt index 0d78410d1a..172b1e6224 100644 --- a/Zend/tests/unexpected_ref_bug.phpt +++ b/Zend/tests/unexpected_ref_bug.phpt @@ -15,5 +15,5 @@ $my_var = str_repeat("A", 64); $data = call_user_func_array("str_replace", array(&$my_var, new Test(), "foo")); echo "Done.\n"; ?> ---EXPECTF-- +--EXPECT-- Done. diff --git a/ext/date/tests/012.phpt b/ext/date/tests/012.phpt index ee8faf1c00..0997ef047c 100644 --- a/ext/date/tests/012.phpt +++ b/ext/date/tests/012.phpt @@ -13,7 +13,7 @@ var_dump(date_isodate_set($dto, 2006, 100, 15)); var_dump($dto->format("Y/m/d H:i:s")); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- object(DateTime)#1 (3) { ["date"]=> string(26) "2006-01-23 00:00:00.000000" diff --git a/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt b/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt index 715ea63dc9..f96753b019 100644 --- a/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt +++ b/ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt @@ -14,6 +14,6 @@ try { echo $exception->getMessage(), "\n"; } ?> ---EXPECTF-- +--EXPECT-- DatePeriod::__construct(): The recurrence count '0' is invalid. Needs to be > 0 DatePeriod::__construct(): The recurrence count '-1' is invalid. Needs to be > 0 diff --git a/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt b/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt index cb948e9df5..670dcb2ee3 100644 --- a/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt +++ b/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt @@ -22,7 +22,7 @@ echo "\n-- Format a sample entry --\n"; var_dump( $abbr["acst"] ); ?> ---EXPECTF-- +--EXPECT-- *** Testing DateTimeZone::listAbbreviations() : basic functionality *** string(5) "array" int(144) diff --git a/ext/date/tests/date_parse_001.phpt b/ext/date/tests/date_parse_001.phpt index 0d58c1f8e9..36f8d9bbdd 100644 --- a/ext/date/tests/date_parse_001.phpt +++ b/ext/date/tests/date_parse_001.phpt @@ -14,7 +14,7 @@ Test basic date_parse() var_dump(date_parse("")); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- array(12) { ["year"]=> int(2006) diff --git a/ext/date/tests/date_parse_error.phpt b/ext/date/tests/date_parse_error.phpt index 24b0094c9e..6a5180fdfb 100644 --- a/ext/date/tests/date_parse_error.phpt +++ b/ext/date/tests/date_parse_error.phpt @@ -17,7 +17,7 @@ $invalid_date = "2OO9-02--27 10:00?00.5"; var_dump( date_parse($invalid_date) ); ?> ---EXPECTF-- +--EXPECT-- *** Testing date_parse() : error conditions *** -- Testing date_parse() function with unexpected characters in $date argument -- diff --git a/ext/date/tests/gmmktime_basic.phpt b/ext/date/tests/gmmktime_basic.phpt index 303bd9b010..f96b635c08 100644 --- a/ext/date/tests/gmmktime_basic.phpt +++ b/ext/date/tests/gmmktime_basic.phpt @@ -22,6 +22,6 @@ $year = 2008; var_dump( gmmktime($hour, $min, $sec, $mon, $day, $year) ); ?> ---EXPECTF-- +--EXPECT-- *** Testing gmmktime() : basic functionality *** int(1218182888) diff --git a/ext/date/tests/mktime_error.phpt b/ext/date/tests/mktime_error.phpt index e40e40f38d..8bdb61df7b 100644 --- a/ext/date/tests/mktime_error.phpt +++ b/ext/date/tests/mktime_error.phpt @@ -35,7 +35,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- *** Testing mktime() : error conditions *** -- Testing mktime() function with Zero arguments -- diff --git a/ext/date/tests/timezone_abbreviations_list_basic1.phpt b/ext/date/tests/timezone_abbreviations_list_basic1.phpt index b3bf7c84a1..0640b8a83d 100644 --- a/ext/date/tests/timezone_abbreviations_list_basic1.phpt +++ b/ext/date/tests/timezone_abbreviations_list_basic1.phpt @@ -22,7 +22,7 @@ echo "\n-- Format a sample entry --\n"; var_dump( $abbr["acst"] ); ?> ---EXPECTF-- +--EXPECT-- *** Testing timezone_abbreviations_list() : basic functionality *** string(5) "array" int(144) diff --git a/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt b/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt index 50a1559f58..855acaaed8 100644 --- a/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt +++ b/ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt @@ -25,7 +25,7 @@ $finfo = new finfo( FILEINFO_NONE, $magicFile ); var_dump( $finfo->set_flags( FILEINFO_MIME ) ); ?> ---EXPECTF-- +--EXPECT-- *** Testing finfo_set_flags() : basic functionality *** bool(true) bool(true) diff --git a/ext/fileinfo/tests/finfo_set_flags_basic.phpt b/ext/fileinfo/tests/finfo_set_flags_basic.phpt index 95f2648f51..fe2921b560 100644 --- a/ext/fileinfo/tests/finfo_set_flags_basic.phpt +++ b/ext/fileinfo/tests/finfo_set_flags_basic.phpt @@ -25,7 +25,7 @@ $finfo = new finfo( FILEINFO_NONE, $magicFile ); var_dump( $finfo->set_flags( FILEINFO_MIME ) ); ?> ---EXPECTF-- +--EXPECT-- *** Testing finfo_set_flags() : basic functionality *** bool(true) bool(true) diff --git a/ext/filter/tests/007.phpt b/ext/filter/tests/007.phpt index dc966b8cc9..b5f285342b 100644 --- a/ext/filter/tests/007.phpt +++ b/ext/filter/tests/007.phpt @@ -23,7 +23,7 @@ var_dump(filter_has_var(INPUT_POST, "")); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- bool(true) bool(true) bool(false) diff --git a/ext/filter/tests/008.phpt b/ext/filter/tests/008.phpt index 75e0968c62..1d4d64529d 100644 --- a/ext/filter/tests/008.phpt +++ b/ext/filter/tests/008.phpt @@ -9,7 +9,7 @@ var_dump(filter_list()); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- array(21) { [0]=> string(3) "int" diff --git a/ext/filter/tests/010.phpt b/ext/filter/tests/010.phpt index 14f8db01af..46b6044668 100644 --- a/ext/filter/tests/010.phpt +++ b/ext/filter/tests/010.phpt @@ -17,7 +17,7 @@ var_dump(filter_var(1, 0, array())); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- array(7) { [0]=> int(1) diff --git a/ext/hash/tests/hash_hkdf_edges.phpt b/ext/hash/tests/hash_hkdf_edges.phpt index cee86ae82e..ceb21631d1 100644 --- a/ext/hash/tests/hash_hkdf_edges.phpt +++ b/ext/hash/tests/hash_hkdf_edges.phpt @@ -25,7 +25,7 @@ catch (\Error $e) { } ?> ---EXPECTF-- +--EXPECT-- *** Testing hash_hkdf(): edge cases *** Length < digestSize: 98b16391063ece Length % digestSize != 0: 98b16391063ecee006a3ca8ee5776b1e5f diff --git a/ext/hash/tests/hash_hmac_file_basic.phpt b/ext/hash/tests/hash_hmac_file_basic.phpt index 4569c46c35..11b9d05738 100644 --- a/ext/hash/tests/hash_hmac_file_basic.phpt +++ b/ext/hash/tests/hash_hmac_file_basic.phpt @@ -57,7 +57,7 @@ echo "sha256(raw): " . bin2hex(hash_hmac_file('sha256', $file, $key, TRUE)). "\n unlink($file); ?> ---EXPECTF-- +--EXPECT-- *** Testing hash_hmac_file() : basic functionality *** gost: 94c39a40d5db852a8dc3d24e37eebf2d53e3d711457c59cd02b614f792a9d918 haval128,3: f1cea637451097d790354a86de3f54a3 diff --git a/ext/json/tests/json_last_error_msg_error.phpt b/ext/json/tests/json_last_error_msg_error.phpt index 75b06f72a2..0eb55c4c66 100644 --- a/ext/json/tests/json_last_error_msg_error.phpt +++ b/ext/json/tests/json_last_error_msg_error.phpt @@ -14,6 +14,6 @@ try { } ?> ---EXPECTF-- +--EXPECT-- string(8) "No error" json_last_error_msg() expects exactly 0 parameters, 1 given diff --git a/ext/libxml/tests/bug76777.phpt b/ext/libxml/tests/bug76777.phpt index 5e15024b81..c50e52203f 100644 --- a/ext/libxml/tests/bug76777.phpt +++ b/ext/libxml/tests/bug76777.phpt @@ -29,7 +29,7 @@ libxml_set_external_entity_loader(function($p,$s,$c) { $dom=new DOMDocument($xml); $dom->schemaValidateSource($xsd); ?> ---EXPECTF-- +--EXPECT-- NULL string(15) "nonexistent.xsd" array(4) { diff --git a/ext/pcre/tests/preg_replace_error2.phpt b/ext/pcre/tests/preg_replace_error2.phpt index 2401e0bb49..d7748bf954 100644 --- a/ext/pcre/tests/preg_replace_error2.phpt +++ b/ext/pcre/tests/preg_replace_error2.phpt @@ -29,7 +29,7 @@ try { } echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing preg_replace() : error conditions *** Arg value is: this is a string diff --git a/ext/pcre/tests/split2.phpt b/ext/pcre/tests/split2.phpt index 5fafee3b87..3d9714a420 100644 --- a/ext/pcre/tests/split2.phpt +++ b/ext/pcre/tests/split2.phpt @@ -19,7 +19,7 @@ var_dump(preg_split('/(\d*)/', 'ab2c3u')); var_dump(preg_last_error() == PREG_RECURSION_LIMIT_ERROR); ?> ---EXPECTF-- +--EXPECT-- array(15) { [0]=> string(0) "" diff --git a/ext/phar/tests/phar_isvalidpharfilename.phpt b/ext/phar/tests/phar_isvalidpharfilename.phpt index 8b9088b9b3..d44c0603e9 100644 --- a/ext/phar/tests/phar_isvalidpharfilename.phpt +++ b/ext/phar/tests/phar_isvalidpharfilename.phpt @@ -72,7 +72,7 @@ var_dump(Phar::isValidPharFilename('dir.phar.php', false)); --CLEAN-- <?php rmdir(__DIR__ . '/.phar'); ---EXPECTF-- +--EXPECT-- bool(false) bool(false) bool(false) diff --git a/ext/phar/tests/pharfileinfo_chmod.phpt b/ext/phar/tests/pharfileinfo_chmod.phpt index 822b5ac628..26d7257602 100644 --- a/ext/phar/tests/pharfileinfo_chmod.phpt +++ b/ext/phar/tests/pharfileinfo_chmod.phpt @@ -24,5 +24,5 @@ $b->chmod(0666); ?> --CLEAN-- <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?> ---EXPECTF-- +--EXPECT-- Phar entry "a" is a temporary directory (not an actual entry in the archive), cannot chmod diff --git a/ext/phar/tests/pharfileinfo_setmetadata.phpt b/ext/phar/tests/pharfileinfo_setmetadata.phpt index 38e23f706d..8b4385ad5f 100644 --- a/ext/phar/tests/pharfileinfo_setmetadata.phpt +++ b/ext/phar/tests/pharfileinfo_setmetadata.phpt @@ -40,7 +40,7 @@ echo $e->getMessage(), "\n"; --CLEAN-- <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?> <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?> ---EXPECTF-- +--EXPECT-- Phar entry is a temporary directory (not an actual entry in the archive), cannot set metadata Phar entry is a temporary directory (not an actual entry in the archive), cannot delete metadata Write operations disabled by the php.ini setting phar.readonly diff --git a/ext/phar/tests/stat2_5.3.phpt b/ext/phar/tests/stat2_5.3.phpt index 19acc3ba99..9e9e158602 100644 --- a/ext/phar/tests/stat2_5.3.phpt +++ b/ext/phar/tests/stat2_5.3.phpt @@ -35,7 +35,7 @@ include $fname3; --CLEAN-- <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.tar'); ?> <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?> ---EXPECTF-- +--EXPECT-- bool(true) is_link bool(false) diff --git a/ext/posix/tests/posix_getgrgid_error.phpt b/ext/posix/tests/posix_getgrgid_error.phpt index e9dbe2a6ce..36ffcf4952 100644 --- a/ext/posix/tests/posix_getgrgid_error.phpt +++ b/ext/posix/tests/posix_getgrgid_error.phpt @@ -20,7 +20,7 @@ var_dump( posix_getgrgid($gid)); echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing posix_getgrgid() : error conditions *** -- Testing posix_getgrgid() function with a negative group id -- diff --git a/ext/posix/tests/posix_getpgid_error.phpt b/ext/posix/tests/posix_getpgid_error.phpt index 19e306b2ee..85f12d4917 100644 --- a/ext/posix/tests/posix_getpgid_error.phpt +++ b/ext/posix/tests/posix_getpgid_error.phpt @@ -22,7 +22,7 @@ var_dump( posix_getpgid($pid) ); echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing posix_getpgid() : error conditions *** -- Testing posix_getpgid() with negative pid -- diff --git a/ext/posix/tests/posix_getpwuid_error.phpt b/ext/posix/tests/posix_getpwuid_error.phpt index 365033b689..b4ec515e74 100644 --- a/ext/posix/tests/posix_getpwuid_error.phpt +++ b/ext/posix/tests/posix_getpwuid_error.phpt @@ -20,7 +20,7 @@ var_dump( posix_getpwuid($uid) ); echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing posix_getpwuid() : error conditions *** -- Testing posix_getpwuid() function negative uid -- diff --git a/ext/posix/tests/posix_getsid_error.phpt b/ext/posix/tests/posix_getsid_error.phpt index 8e05a23496..08080230aa 100644 --- a/ext/posix/tests/posix_getsid_error.phpt +++ b/ext/posix/tests/posix_getsid_error.phpt @@ -15,5 +15,5 @@ PHP Testfest Berlin 2009-05-10 <?php var_dump( posix_getsid(-1) ); ?> ---EXPECTF-- +--EXPECT-- bool(false) diff --git a/ext/posix/tests/posix_initgroups.phpt b/ext/posix/tests/posix_initgroups.phpt index 20cf8cef8b..c77acfe3a4 100644 --- a/ext/posix/tests/posix_initgroups.phpt +++ b/ext/posix/tests/posix_initgroups.phpt @@ -11,5 +11,5 @@ if (!function_exists('posix_initgroups')) die('skip posix_initgroups() not found var_dump(posix_initgroups(NULL, NULL)); ?> ---EXPECTF-- +--EXPECT-- bool(false) diff --git a/ext/posix/tests/posix_kill_error.phpt b/ext/posix/tests/posix_kill_error.phpt index 89474c4994..ea9b4f45dc 100644 --- a/ext/posix/tests/posix_kill_error.phpt +++ b/ext/posix/tests/posix_kill_error.phpt @@ -28,7 +28,7 @@ var_dump( posix_kill($pid, 999) ); echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing posix_kill() : error conditions *** -- Testing posix_kill() function with invalid signal -- diff --git a/ext/posix/tests/posix_strerror_error.phpt b/ext/posix/tests/posix_strerror_error.phpt index 60b096656a..2792ff5b3b 100644 --- a/ext/posix/tests/posix_strerror_error.phpt +++ b/ext/posix/tests/posix_strerror_error.phpt @@ -20,7 +20,7 @@ echo gettype( posix_strerror($errno) )."\n"; echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing posix_strerror() : error conditions *** -- Testing posix_strerror() function with invalid error number -- diff --git a/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt b/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt index a135939052..607fead65c 100644 --- a/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt +++ b/ext/reflection/tests/ReflectionClass_hasProperty_002.phpt @@ -16,7 +16,7 @@ var_dump($rc->hasProperty(1)); var_dump($rc->hasProperty(1.5)); var_dump($rc->hasProperty(true)); ?> ---EXPECTF-- +--EXPECT-- Check invalid params: bool(false) bool(false) diff --git a/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt b/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt index 728ddf9265..7e45eec411 100644 --- a/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt +++ b/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt @@ -43,7 +43,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- *** Testing ReflectionMethod::getClosure() : error conditions *** -- Testing ReflectionMethod::getClosure() function with invalid object -- diff --git a/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt b/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt index 113cabbbeb..c3bab48d6f 100644 --- a/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt +++ b/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt @@ -69,7 +69,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- Non-instance: string(72) "Given object is not an instance of the class this method was declared in" diff --git a/ext/reflection/tests/ReflectionObject_getName_basic.phpt b/ext/reflection/tests/ReflectionObject_getName_basic.phpt index 1885695cb1..94ad1e2c7b 100644 --- a/ext/reflection/tests/ReflectionObject_getName_basic.phpt +++ b/ext/reflection/tests/ReflectionObject_getName_basic.phpt @@ -15,7 +15,7 @@ $r3 = new ReflectionObject($r2); var_dump($r3->getName()); ?> ---EXPECTF-- +--EXPECT-- string(8) "stdClass" string(1) "C" string(16) "ReflectionObject" diff --git a/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt b/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt index 1472615178..7defcb76e0 100644 --- a/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt +++ b/ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt @@ -25,7 +25,7 @@ reflectProperty("TestClass", "prot"); reflectProperty("TestClass", "priv"); ?> ---EXPECTF-- +--EXPECT-- ********************************** Reflecting on property TestClass::pub diff --git a/ext/reflection/tests/ReflectionProperty_setValue_error.phpt b/ext/reflection/tests/ReflectionProperty_setValue_error.phpt index f58590b3ea..1f0c2b5f2b 100644 --- a/ext/reflection/tests/ReflectionProperty_setValue_error.phpt +++ b/ext/reflection/tests/ReflectionProperty_setValue_error.phpt @@ -32,7 +32,7 @@ $propInfo = new ReflectionProperty('TestClass', 'pub2'); var_dump($propInfo->setValue($instanceWithNoProperties, "NewValue")); var_dump($instanceWithNoProperties->pub2); ?> ---EXPECTF-- +--EXPECT-- Protected property: Cannot access non-public member TestClass::$prot diff --git a/ext/session/tests/bug79221.phpt b/ext/session/tests/bug79221.phpt index b0972c4697..0813457035 100644 --- a/ext/session/tests/bug79221.phpt +++ b/ext/session/tests/bug79221.phpt @@ -40,6 +40,6 @@ session_start(); var_dump($_SESSION); session_destroy(); ---EXPECTF-- +--EXPECT-- array(0) { } diff --git a/ext/session/tests/session_cache_limiter_error.phpt b/ext/session/tests/session_cache_limiter_error.phpt index 284649e277..d291d531c0 100644 --- a/ext/session/tests/session_cache_limiter_error.phpt +++ b/ext/session/tests/session_cache_limiter_error.phpt @@ -89,7 +89,7 @@ fclose($fp); echo "Done"; ob_end_flush(); ?> ---EXPECTF-- +--EXPECT-- *** Testing session_cache_limiter() : error functionality *** -- Iteration 1 -- diff --git a/ext/spl/tests/bug61347.phpt b/ext/spl/tests/bug61347.phpt index b83f48f7ff..4b4f9eaedf 100644 --- a/ext/spl/tests/bug61347.phpt +++ b/ext/spl/tests/bug61347.phpt @@ -21,7 +21,7 @@ var_dump(isset($b[37])); //true var_dump(isset($b['no_exists'])); //false var_dump(empty($b['b'])); //true var_dump(empty($b[37])); //true ---EXPECTF-- +--EXPECT-- bool(false) bool(false) bool(false) diff --git a/ext/spl/tests/fileobject_005.phpt b/ext/spl/tests/fileobject_005.phpt index e26a8d7aea..cce4a7d6a6 100644 --- a/ext/spl/tests/fileobject_005.phpt +++ b/ext/spl/tests/fileobject_005.phpt @@ -27,6 +27,6 @@ $fo->fwrite("blahlubba"); $path = __DIR__.DIRECTORY_SEPARATOR.'fileobject_005.txt'; unlink($path); ?> ---EXPECTF-- +--EXPECT-- bool(true) string(4) "blah" diff --git a/ext/spl/tests/iterator_045.phpt b/ext/spl/tests/iterator_045.phpt index 63d78cc78e..e245b95688 100644 --- a/ext/spl/tests/iterator_045.phpt +++ b/ext/spl/tests/iterator_045.phpt @@ -88,7 +88,7 @@ $it->testUnset($unsets); $it->show(); ?> ---EXPECTF-- +--EXPECT-- Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct) Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct) MyCachingIterator::testSet() diff --git a/ext/spl/tests/regexIterator_setMode_error.phpt b/ext/spl/tests/regexIterator_setMode_error.phpt index 4816896d8a..3b0eaf1d66 100644 --- a/ext/spl/tests/regexIterator_setMode_error.phpt +++ b/ext/spl/tests/regexIterator_setMode_error.phpt @@ -18,7 +18,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- int(0) string(14) "Illegal mode 7" int(0) diff --git a/ext/spl/tests/spl_heap_is_empty_basic.phpt b/ext/spl/tests/spl_heap_is_empty_basic.phpt index 4a90734ad4..abf64f8d9d 100644 --- a/ext/spl/tests/spl_heap_is_empty_basic.phpt +++ b/ext/spl/tests/spl_heap_is_empty_basic.phpt @@ -22,7 +22,7 @@ var_dump($heap->isEmpty()); $heap->extract(); var_dump($heap->isEmpty()); ?> ---EXPECTF-- +--EXPECT-- bool(true) bool(false) bool(true) diff --git a/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt b/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt index 994c67e0c3..459beeca53 100644 --- a/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt +++ b/ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt @@ -69,7 +69,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- int(1) Unable to prepare statement: 23, not authorized bool(true) diff --git a/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt b/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt index 3f9fe84130..9a893c590d 100644 --- a/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt +++ b/ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt @@ -44,7 +44,7 @@ var_dump($db->close()); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- Getting expanded SQL statement string(21) "SELECT 42, 'php', 43;" Execute statement diff --git a/ext/standard/tests/array/005.phpt b/ext/standard/tests/array/005.phpt index c51e98a67b..ed9f0458c4 100644 --- a/ext/standard/tests/array/005.phpt +++ b/ext/standard/tests/array/005.phpt @@ -69,7 +69,7 @@ var_dump( current($mixed_array[1]) ); echo"Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing Error Conditions *** NULL diff --git a/ext/standard/tests/array/009.phpt b/ext/standard/tests/array/009.phpt index c62be0d27c..fc10d293ff 100644 --- a/ext/standard/tests/array/009.phpt +++ b/ext/standard/tests/array/009.phpt @@ -71,7 +71,7 @@ foreach ($varient_arrays as $sub_array ) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing basic operations *** -- Iteration 1 -- int(0) diff --git a/ext/standard/tests/array/array_diff_assoc_error.phpt b/ext/standard/tests/array/array_diff_assoc_error.phpt index 6aa7864ee9..69015289e2 100644 --- a/ext/standard/tests/array/array_diff_assoc_error.phpt +++ b/ext/standard/tests/array/array_diff_assoc_error.phpt @@ -33,7 +33,7 @@ try { echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing array_diff_assoc() : error conditions *** -- Testing array_diff_assoc() function with zero arguments -- diff --git a/ext/standard/tests/array/array_diff_error.phpt b/ext/standard/tests/array/array_diff_error.phpt index d269f010b8..889c5ce1b2 100644 --- a/ext/standard/tests/array/array_diff_error.phpt +++ b/ext/standard/tests/array/array_diff_error.phpt @@ -33,7 +33,7 @@ try { echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing array_diff() : error conditions *** -- Testing array_diff() function with zero arguments -- diff --git a/ext/standard/tests/array/array_diff_key_error.phpt b/ext/standard/tests/array/array_diff_key_error.phpt index e957abce1c..80ff5728fe 100644 --- a/ext/standard/tests/array/array_diff_key_error.phpt +++ b/ext/standard/tests/array/array_diff_key_error.phpt @@ -28,7 +28,7 @@ try { echo $e->getMessage(), "\n"; } ?> ---EXPECTF-- +--EXPECT-- *** Testing array_diff_key() : error conditions *** -- Testing array_diff_key() function with less than expected no. of arguments -- diff --git a/ext/standard/tests/array/array_filter.phpt b/ext/standard/tests/array/array_filter.phpt index a1b18bd234..2cb21ca609 100644 --- a/ext/standard/tests/array/array_filter.phpt +++ b/ext/standard/tests/array/array_filter.phpt @@ -28,7 +28,7 @@ var_dump(array_filter($array3, "even")); var_dump(array_filter(array())); ?> ---EXPECTF-- +--EXPECT-- Odd : array(3) { ["a"]=> diff --git a/ext/standard/tests/array/array_filter_variation10.phpt b/ext/standard/tests/array/array_filter_variation10.phpt index 265daf1fb4..ff88d7a7f8 100644 --- a/ext/standard/tests/array/array_filter_variation10.phpt +++ b/ext/standard/tests/array/array_filter_variation10.phpt @@ -56,7 +56,7 @@ try { echo "Done" ?> ---EXPECTF-- +--EXPECT-- *** Testing array_filter() : usage variations - using array keys in 'callback' *** 0 = 0 1 = 1 diff --git a/ext/standard/tests/array/array_key_exists_variation3.phpt b/ext/standard/tests/array/array_key_exists_variation3.phpt index 4a6409bb1f..ef6cf45139 100644 --- a/ext/standard/tests/array/array_key_exists_variation3.phpt +++ b/ext/standard/tests/array/array_key_exists_variation3.phpt @@ -34,7 +34,7 @@ foreach($keys as $key) { echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing array_key_exists() : usage variations *** -- Iteration 1 -- diff --git a/ext/standard/tests/array/array_map_error.phpt b/ext/standard/tests/array/array_map_error.phpt index 4739bbf663..b41871e1c4 100644 --- a/ext/standard/tests/array/array_map_error.phpt +++ b/ext/standard/tests/array/array_map_error.phpt @@ -38,7 +38,7 @@ var_dump( array_map('callback2', $arr1, $arr2, $arr3) ); echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing array_map() : error conditions *** -- Testing array_map() function with one less than expected no. of arguments -- diff --git a/ext/standard/tests/array/array_merge.phpt b/ext/standard/tests/array/array_merge.phpt index 08ecbf7147..75007779fa 100644 --- a/ext/standard/tests/array/array_merge.phpt +++ b/ext/standard/tests/array/array_merge.phpt @@ -83,7 +83,7 @@ var_dump(array_merge()); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing array_merge() basic functionality *** --- Iteration 0 --- diff --git a/ext/standard/tests/array/array_push.phpt b/ext/standard/tests/array/array_push.phpt index 227a520ac1..78076b8fc4 100644 --- a/ext/standard/tests/array/array_push.phpt +++ b/ext/standard/tests/array/array_push.phpt @@ -60,7 +60,7 @@ var_dump( $mixed_array[2] ); echo"\nDone"; ?> ---EXPECTF-- +--EXPECT-- *** Testing Edge Conditions *** int(11) int(1) diff --git a/ext/standard/tests/array/array_slice.phpt b/ext/standard/tests/array/array_slice.phpt index d19f5195d6..a76277883a 100644 --- a/ext/standard/tests/array/array_slice.phpt +++ b/ext/standard/tests/array/array_slice.phpt @@ -68,7 +68,7 @@ foreach ($var_array as $sub_array) var_dump (array_slice($var_array[2], -3, -2, false) ); ?> ---EXPECTF-- +--EXPECT-- *** Iteration 1 *** *** Variation with first two Arguments *** diff --git a/ext/standard/tests/array/array_unshift.phpt b/ext/standard/tests/array/array_unshift.phpt index 9ebe83391e..265de4e846 100644 --- a/ext/standard/tests/array/array_unshift.phpt +++ b/ext/standard/tests/array/array_unshift.phpt @@ -12,7 +12,7 @@ var_dump($a); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- int(1) array(1) { [0]=> diff --git a/ext/standard/tests/array/array_walk.phpt b/ext/standard/tests/array/array_walk.phpt index 1f5457c9f7..151c9c70d0 100644 --- a/ext/standard/tests/array/array_walk.phpt +++ b/ext/standard/tests/array/array_walk.phpt @@ -24,7 +24,7 @@ try { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- int(1) int(0) string(4) "data" diff --git a/ext/standard/tests/array/array_walk_error2.phpt b/ext/standard/tests/array/array_walk_error2.phpt index dfc95d3af8..e5aeadcdc0 100644 --- a/ext/standard/tests/array/array_walk_error2.phpt +++ b/ext/standard/tests/array/array_walk_error2.phpt @@ -54,7 +54,7 @@ try { echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing array_walk() : error conditions - callback parameters *** Exception: Too few arguments to function callback1(), 2 passed and exactly 3 expected Exception: Too few arguments to function callback2(), 3 passed and exactly 4 expected diff --git a/ext/standard/tests/array/array_walk_recursive1.phpt b/ext/standard/tests/array/array_walk_recursive1.phpt index 472cb1032d..d4d3e7d8eb 100644 --- a/ext/standard/tests/array/array_walk_recursive1.phpt +++ b/ext/standard/tests/array/array_walk_recursive1.phpt @@ -24,7 +24,7 @@ try { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- int(1) int(0) string(4) "data" diff --git a/ext/standard/tests/array/array_walk_recursive_error2.phpt b/ext/standard/tests/array/array_walk_recursive_error2.phpt index f1686d7acd..2509c95f60 100644 --- a/ext/standard/tests/array/array_walk_recursive_error2.phpt +++ b/ext/standard/tests/array/array_walk_recursive_error2.phpt @@ -54,7 +54,7 @@ try { echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing array_walk_recursive() : error conditions - callback parameters *** Exception: Too few arguments to function callback1(), 2 passed and exactly 3 expected Exception: Too few arguments to function callback2(), 3 passed and exactly 4 expected diff --git a/ext/standard/tests/array/array_walk_recursive_variation7.phpt b/ext/standard/tests/array/array_walk_recursive_variation7.phpt index a0c159d71d..a1cbdad2bd 100644 --- a/ext/standard/tests/array/array_walk_recursive_variation7.phpt +++ b/ext/standard/tests/array/array_walk_recursive_variation7.phpt @@ -33,7 +33,7 @@ echo "-- Anonymous function with null argument --\n"; var_dump( array_walk_recursive( $input, function() { echo "1\n"; })); echo "Done" ?> ---EXPECTF-- +--EXPECT-- *** Testing array_walk_recursive() : anonymous function as callback *** -- Anonymous function with one argument -- int(2) diff --git a/ext/standard/tests/array/array_walk_variation7.phpt b/ext/standard/tests/array/array_walk_variation7.phpt index 0354782eda..3689f8a798 100644 --- a/ext/standard/tests/array/array_walk_variation7.phpt +++ b/ext/standard/tests/array/array_walk_variation7.phpt @@ -33,7 +33,7 @@ echo "-- Anonymous function with null argument --\n"; var_dump( array_walk( $input, function() { echo "1\n"; })); echo "Done" ?> ---EXPECTF-- +--EXPECT-- *** Testing array_walk() : anonymous function as callback *** -- Anonymous function with one argument -- int(2) diff --git a/ext/standard/tests/array/uasort_variation8.phpt b/ext/standard/tests/array/uasort_variation8.phpt index d27cd569c0..b6abdeaef3 100644 --- a/ext/standard/tests/array/uasort_variation8.phpt +++ b/ext/standard/tests/array/uasort_variation8.phpt @@ -29,7 +29,7 @@ var_dump($array_arg); echo "Done" ?> ---EXPECTF-- +--EXPECT-- *** Testing uasort() : built in function as 'cmp_function' *** -- Testing uasort() with built-in 'cmp_function': strcasecmp() -- bool(true) diff --git a/ext/standard/tests/array/usort_variation8.phpt b/ext/standard/tests/array/usort_variation8.phpt index 55ff362d41..4a750ccefa 100644 --- a/ext/standard/tests/array/usort_variation8.phpt +++ b/ext/standard/tests/array/usort_variation8.phpt @@ -31,7 +31,7 @@ var_dump( usort($temp_array2, 'strcmp') ); var_dump($temp_array2); ?> ---EXPECTF-- +--EXPECT-- *** Testing usort() : usage variation *** -- Testing usort() with built-in 'cmp_function': strcasecmp() -- diff --git a/ext/standard/tests/assert/assert_variation.phpt b/ext/standard/tests/assert/assert_variation.phpt index a28ea58d5a..7b550b36d1 100644 --- a/ext/standard/tests/assert/assert_variation.phpt +++ b/ext/standard/tests/assert/assert_variation.phpt @@ -67,7 +67,7 @@ var_dump($rao=assert_options(ASSERT_CALLBACK)); echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n"; var_dump($r2=assert(0 != 0)); echo"\n"; ---EXPECTF-- +--EXPECT-- Initial values: assert_options(ASSERT_CALLBACK) => [f1] Initial values: ini.get("assert.callback") => [f1] f1 called diff --git a/ext/standard/tests/file/auto_detect_line_endings_1.phpt b/ext/standard/tests/file/auto_detect_line_endings_1.phpt index c79082ecdb..5a4ff0a10f 100644 --- a/ext/standard/tests/file/auto_detect_line_endings_1.phpt +++ b/ext/standard/tests/file/auto_detect_line_endings_1.phpt @@ -15,7 +15,7 @@ var_dump(fgets(STDIN)); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- string(1) "1" string(8) "fooBar1 " string(8) "fooBar2 " diff --git a/ext/standard/tests/file/auto_detect_line_endings_2.phpt b/ext/standard/tests/file/auto_detect_line_endings_2.phpt index f33a055e08..3994f1ee3b 100644 --- a/ext/standard/tests/file/auto_detect_line_endings_2.phpt +++ b/ext/standard/tests/file/auto_detect_line_endings_2.phpt @@ -16,7 +16,7 @@ var_dump(fgets($stdin)); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- string(2) "on" string(8) "fooBar1 " string(8) "fooBar2 " diff --git a/ext/standard/tests/file/basename.phpt b/ext/standard/tests/file/basename.phpt index 8352f4da4b..7a98e833a3 100644 --- a/ext/standard/tests/file/basename.phpt +++ b/ext/standard/tests/file/basename.phpt @@ -138,7 +138,7 @@ check_basename( $file_path_variations ); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing basic operations *** --Iteration 1-- diff --git a/ext/standard/tests/file/fscanf.phpt b/ext/standard/tests/file/fscanf.phpt index 6605b795ff..4acadc6169 100644 --- a/ext/standard/tests/file/fscanf.phpt +++ b/ext/standard/tests/file/fscanf.phpt @@ -75,7 +75,7 @@ echo "Done\n"; $filename = __DIR__."/fscanf.dat"; unlink($filename); ?> ---EXPECTF-- +--EXPECT-- int(0) NULL int(1) diff --git a/ext/standard/tests/file/fscanf_variation10.phpt b/ext/standard/tests/file/fscanf_variation10.phpt index f657c07005..507ed8e22d 100644 --- a/ext/standard/tests/file/fscanf_variation10.phpt +++ b/ext/standard/tests/file/fscanf_variation10.phpt @@ -82,7 +82,7 @@ $file_path = __DIR__; $filename = "$file_path/fscanf_variation10.tmp"; unlink($filename); ?> ---EXPECTF-- +--EXPECT-- *** Test fscanf(): different float format types with resource *** -- iteration 1 -- diff --git a/ext/standard/tests/file/is_dir_variation3.phpt b/ext/standard/tests/file/is_dir_variation3.phpt index e82d9ae034..1cf1f25138 100644 --- a/ext/standard/tests/file/is_dir_variation3.phpt +++ b/ext/standard/tests/file/is_dir_variation3.phpt @@ -30,7 +30,7 @@ foreach($dirnames as $dirname) { var_dump( is_dir($dirname) ); } ?> ---EXPECTF-- +--EXPECT-- *** Testing is_dir() with Invalid arguments: expected bool(false) *** bool(false) bool(false) diff --git a/ext/standard/tests/file/is_executable_error.phpt b/ext/standard/tests/file/is_executable_error.phpt index ad90d64435..e77ca86349 100644 --- a/ext/standard/tests/file/is_executable_error.phpt +++ b/ext/standard/tests/file/is_executable_error.phpt @@ -10,7 +10,7 @@ echo "\n*** Testing is_exceutable() on non-existent directory ***\n"; var_dump( is_executable(__DIR__."/is_executable") ); echo "Done\n"; ---EXPECTF-- +--EXPECT-- *** Testing is_exceutable() on non-existent directory *** bool(false) Done diff --git a/ext/standard/tests/file/is_executable_variation3.phpt b/ext/standard/tests/file/is_executable_variation3.phpt index 92ad3320d3..802dbfdf7e 100644 --- a/ext/standard/tests/file/is_executable_variation3.phpt +++ b/ext/standard/tests/file/is_executable_variation3.phpt @@ -40,7 +40,7 @@ foreach( $invalid_files as $invalid_file ) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing is_executable(): usage variations *** *** Testing is_executable() on invalid files *** diff --git a/ext/standard/tests/file/is_file_variation3.phpt b/ext/standard/tests/file/is_file_variation3.phpt index d33b01dfb3..5bdb63e37c 100644 --- a/ext/standard/tests/file/is_file_variation3.phpt +++ b/ext/standard/tests/file/is_file_variation3.phpt @@ -39,7 +39,7 @@ foreach([ clearstatcache(); } ?> ---EXPECTF-- +--EXPECT-- float(-2.34555): 0 string(1) " ": 0 string(0) "": 0 diff --git a/ext/standard/tests/file/is_readable_error.phpt b/ext/standard/tests/file/is_readable_error.phpt index 1520eb4d20..c8a6c34fa0 100644 --- a/ext/standard/tests/file/is_readable_error.phpt +++ b/ext/standard/tests/file/is_readable_error.phpt @@ -11,7 +11,7 @@ var_dump( is_readable(__DIR__."/is_readable.tmp") ); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing is_readable() on non-existent file *** bool(false) Done diff --git a/ext/standard/tests/file/is_readable_variation3.phpt b/ext/standard/tests/file/is_readable_variation3.phpt index 97c794d1b7..f7eebdc2b8 100644 --- a/ext/standard/tests/file/is_readable_variation3.phpt +++ b/ext/standard/tests/file/is_readable_variation3.phpt @@ -37,7 +37,7 @@ foreach( $misc_files as $misc_file ) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing is_readable(): usage variations *** *** Testing is_readable() on miscellaneous filenames *** diff --git a/ext/standard/tests/file/is_uploaded_file_basic.phpt b/ext/standard/tests/file/is_uploaded_file_basic.phpt index d053244a79..3e5bf6320c 100644 --- a/ext/standard/tests/file/is_uploaded_file_basic.phpt +++ b/ext/standard/tests/file/is_uploaded_file_basic.phpt @@ -30,7 +30,7 @@ var_dump(is_uploaded_file('random_filename.txt')); var_dump(is_uploaded_file('__FILE__')); ?> ---EXPECTF-- +--EXPECT-- bool(true) bool(false) bool(false) diff --git a/ext/standard/tests/file/is_writable_error.phpt b/ext/standard/tests/file/is_writable_error.phpt index e2a38412cd..f01e69b13d 100644 --- a/ext/standard/tests/file/is_writable_error.phpt +++ b/ext/standard/tests/file/is_writable_error.phpt @@ -14,7 +14,7 @@ var_dump( is_writeable(__DIR__."/is_writable") ); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing is_writable() on non-existent file *** bool(false) bool(false) diff --git a/ext/standard/tests/file/is_writable_variation3.phpt b/ext/standard/tests/file/is_writable_variation3.phpt index c5843a5abf..167d874ac2 100644 --- a/ext/standard/tests/file/is_writable_variation3.phpt +++ b/ext/standard/tests/file/is_writable_variation3.phpt @@ -37,7 +37,7 @@ foreach( $misc_files as $misc_file ) { clearstatcache(); } ?> ---EXPECTF-- +--EXPECT-- *** Testing is_writable(): usage variations *** *** Testing is_writable() with invalid filenames *** diff --git a/ext/standard/tests/file/move_uploaded_file_basic.phpt b/ext/standard/tests/file/move_uploaded_file_basic.phpt index 7af8748fe2..b80c052691 100644 --- a/ext/standard/tests/file/move_uploaded_file_basic.phpt +++ b/ext/standard/tests/file/move_uploaded_file_basic.phpt @@ -50,7 +50,7 @@ var_dump(move_uploaded_file($_FILES['file2']['tmp_name'], $destination4)); unlink($destination4); ?> ---EXPECTF-- +--EXPECT-- Valid move bool(true) bool(true) diff --git a/ext/standard/tests/general_functions/get_include_path_basic.phpt b/ext/standard/tests/general_functions/get_include_path_basic.phpt index bb7ccf542b..c17d5d3e71 100644 --- a/ext/standard/tests/general_functions/get_include_path_basic.phpt +++ b/ext/standard/tests/general_functions/get_include_path_basic.phpt @@ -20,7 +20,7 @@ if (ini_get("include_path") == get_include_path()) { } ?> ---EXPECTF-- +--EXPECT-- *** Testing get_include_path() string(1) "." PASSED diff --git a/ext/standard/tests/general_functions/include_path.phpt b/ext/standard/tests/general_functions/include_path.phpt index 56327500ea..06e806b3a2 100644 --- a/ext/standard/tests/general_functions/include_path.phpt +++ b/ext/standard/tests/general_functions/include_path.phpt @@ -31,7 +31,7 @@ var_dump(get_include_path()); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- string(1) "." NULL string(1) "." diff --git a/ext/standard/tests/general_functions/is_array.phpt b/ext/standard/tests/general_functions/is_array.phpt index 200ecbd6ac..37de6d5a5b 100644 --- a/ext/standard/tests/general_functions/is_array.phpt +++ b/ext/standard/tests/general_functions/is_array.phpt @@ -103,7 +103,7 @@ echo "Done\n"; fclose($fp); closedir($dfp); ?> ---EXPECTF-- +--EXPECT-- *** Testing is_array() on different type of arrays *** -- Iteration 1 -- bool(true) diff --git a/ext/standard/tests/general_functions/is_bool.phpt b/ext/standard/tests/general_functions/is_bool.phpt index 7c8d693a1b..70aaed9c3f 100644 --- a/ext/standard/tests/general_functions/is_bool.phpt +++ b/ext/standard/tests/general_functions/is_bool.phpt @@ -134,7 +134,7 @@ fclose($fp); closedir($dfp); ?> ---EXPECTF-- +--EXPECT-- *** Testing is_bool() with valid boolean values *** -- Iteration 1 -- bool(true) diff --git a/ext/standard/tests/general_functions/is_float_64bit.phpt b/ext/standard/tests/general_functions/is_float_64bit.phpt index dc6df0f109..1815e53c00 100644 --- a/ext/standard/tests/general_functions/is_float_64bit.phpt +++ b/ext/standard/tests/general_functions/is_float_64bit.phpt @@ -131,7 +131,7 @@ foreach ($not_floats as $value ) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing is_float(), is_double() and is_real() with float values*** -- Iteration 1 -- bool(false) diff --git a/ext/standard/tests/general_functions/is_int_64bit.phpt b/ext/standard/tests/general_functions/is_int_64bit.phpt index e5c6ce77e0..8e5e9332c0 100644 --- a/ext/standard/tests/general_functions/is_int_64bit.phpt +++ b/ext/standard/tests/general_functions/is_int_64bit.phpt @@ -136,7 +136,7 @@ foreach ($not_int_types as $type ) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing is_int(), is_integer() & is_long() with valid integer values *** --Iteration 1-- bool(true) diff --git a/ext/standard/tests/general_functions/is_null.phpt b/ext/standard/tests/general_functions/is_null.phpt index 4fc325c744..6560707e57 100644 --- a/ext/standard/tests/general_functions/is_null.phpt +++ b/ext/standard/tests/general_functions/is_null.phpt @@ -134,7 +134,7 @@ fclose($fp); closedir($dfp); ?> ---EXPECTF-- +--EXPECT-- *** Testing is_null() with valid null values *** -- Iteration 1 -- bool(true) diff --git a/ext/standard/tests/general_functions/is_numeric.phpt b/ext/standard/tests/general_functions/is_numeric.phpt index 491aa5d15b..8883c57ac2 100644 --- a/ext/standard/tests/general_functions/is_numeric.phpt +++ b/ext/standard/tests/general_functions/is_numeric.phpt @@ -152,7 +152,7 @@ fclose($fp); closedir($dfp); ?> ---EXPECTF-- +--EXPECT-- *** Testing is_numeric() with valid numeric values *** -- Iteration 1 -- bool(true) diff --git a/ext/standard/tests/general_functions/is_object.phpt b/ext/standard/tests/general_functions/is_object.phpt index dd0e7689fd..8a5ac1bcbe 100644 --- a/ext/standard/tests/general_functions/is_object.phpt +++ b/ext/standard/tests/general_functions/is_object.phpt @@ -145,7 +145,7 @@ fclose($fp); closedir($dfp); ?> ---EXPECTF-- +--EXPECT-- *** Testing is_object() with valid objects *** -- Iteration 1 -- bool(true) diff --git a/ext/standard/tests/general_functions/is_scalar.phpt b/ext/standard/tests/general_functions/is_scalar.phpt index f7ef3f5317..6a89da9f56 100644 --- a/ext/standard/tests/general_functions/is_scalar.phpt +++ b/ext/standard/tests/general_functions/is_scalar.phpt @@ -112,7 +112,7 @@ fclose($fp); closedir($dfp); ?> ---EXPECTF-- +--EXPECT-- *** Testing basic operations *** -- Iteration 1 -- bool(true) diff --git a/ext/standard/tests/general_functions/is_string.phpt b/ext/standard/tests/general_functions/is_string.phpt index 7760f79831..a4ef7a47b1 100644 --- a/ext/standard/tests/general_functions/is_string.phpt +++ b/ext/standard/tests/general_functions/is_string.phpt @@ -147,7 +147,7 @@ fclose($fp); closedir($dfp); ?> ---EXPECTF-- +--EXPECT-- *** Testing is_string() with valid string values *** -- Iteration 1 -- bool(true) diff --git a/ext/standard/tests/general_functions/ob_get_length_basic.phpt b/ext/standard/tests/general_functions/ob_get_length_basic.phpt index 46d5d2d0f6..0eb1adf9ee 100644 --- a/ext/standard/tests/general_functions/ob_get_length_basic.phpt +++ b/ext/standard/tests/general_functions/ob_get_length_basic.phpt @@ -32,7 +32,7 @@ dump_string_length( '' ); dump_string_length( null ); ?> ---EXPECTF-- +--EXPECT-- *** Testing ob_get_length() : basic functionality *** bool(false) int(26) diff --git a/ext/standard/tests/general_functions/php_uname_error.phpt b/ext/standard/tests/general_functions/php_uname_error.phpt index 23859a33ac..c64c15b404 100644 --- a/ext/standard/tests/general_functions/php_uname_error.phpt +++ b/ext/standard/tests/general_functions/php_uname_error.phpt @@ -13,7 +13,7 @@ echo "\n-- Testing php_uname() function with invalid mode --\n"; var_dump( php_uname('z') == php_uname('z') ); ?> ---EXPECTF-- +--EXPECT-- *** Testing php_uname() - error test -- Testing php_uname() function with invalid mode -- diff --git a/ext/standard/tests/general_functions/print_r.phpt b/ext/standard/tests/general_functions/print_r.phpt index 3f24a5bc9d..d2ec63f5b4 100644 --- a/ext/standard/tests/general_functions/print_r.phpt +++ b/ext/standard/tests/general_functions/print_r.phpt @@ -276,7 +276,7 @@ closedir($dir_handle); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing print_r() on integer variables *** -- Iteration 1 -- diff --git a/ext/standard/tests/general_functions/print_r_64bit.phpt b/ext/standard/tests/general_functions/print_r_64bit.phpt index a0e9e148c6..5df1637dbd 100644 --- a/ext/standard/tests/general_functions/print_r_64bit.phpt +++ b/ext/standard/tests/general_functions/print_r_64bit.phpt @@ -280,7 +280,7 @@ closedir($dir_handle); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing print_r() on integer variables *** -- Iteration 1 -- diff --git a/ext/standard/tests/general_functions/var_dump_64bit.phpt b/ext/standard/tests/general_functions/var_dump_64bit.phpt index 0600775f58..7b74761586 100644 --- a/ext/standard/tests/general_functions/var_dump_64bit.phpt +++ b/ext/standard/tests/general_functions/var_dump_64bit.phpt @@ -279,7 +279,7 @@ closedir($dir_handle); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing var_dump() on integer variables *** -- Iteration 1 -- int(0) diff --git a/ext/standard/tests/general_functions/var_export-locale.phpt b/ext/standard/tests/general_functions/var_export-locale.phpt index bdc61d9928..9f9cd0e896 100644 --- a/ext/standard/tests/general_functions/var_export-locale.phpt +++ b/ext/standard/tests/general_functions/var_export-locale.phpt @@ -307,7 +307,7 @@ echo "\nDone"; ?> ---EXPECTF-- +--EXPECT-- *** Testing var_export() with integer values *** *** Output for integer values *** diff --git a/ext/standard/tests/image/image_type_to_extension.phpt b/ext/standard/tests/image/image_type_to_extension.phpt index 249df57943..448aac4e99 100644 --- a/ext/standard/tests/image/image_type_to_extension.phpt +++ b/ext/standard/tests/image/image_type_to_extension.phpt @@ -33,7 +33,7 @@ image_type_to_extension() var_dump(image_type_to_extension(0)); ?> Done ---EXPECTF-- +--EXPECT-- Constant: IMAGETYPE_GIF With dot: .gif Without dot: gif diff --git a/ext/standard/tests/math/lcg_value_basic.phpt b/ext/standard/tests/math/lcg_value_basic.phpt index 95811c6f3c..ca76b5c836 100644 --- a/ext/standard/tests/math/lcg_value_basic.phpt +++ b/ext/standard/tests/math/lcg_value_basic.phpt @@ -24,7 +24,7 @@ if ($i != 100) { echo "MATHS test script completed\n"; ?> ---EXPECTF-- +--EXPECT-- MATHS test script started lcg_value tests... diff --git a/ext/standard/tests/network/inet.phpt b/ext/standard/tests/network/inet.phpt index 29b4aa0e6b..b25265446f 100644 --- a/ext/standard/tests/network/inet.phpt +++ b/ext/standard/tests/network/inet.phpt @@ -35,7 +35,7 @@ foreach ($array as $val) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- string(9) "127.0.0.1" string(13) "255.255.255.0" bool(false) diff --git a/ext/standard/tests/network/ip_x86_64.phpt b/ext/standard/tests/network/ip_x86_64.phpt index c659eb70fb..dd81bde55c 100644 --- a/ext/standard/tests/network/ip_x86_64.phpt +++ b/ext/standard/tests/network/ip_x86_64.phpt @@ -29,7 +29,7 @@ var_dump(long2ip(-110000)); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- int(2130706433) string(9) "127.0.0.1" int(167772161) diff --git a/ext/standard/tests/random/random_int.phpt b/ext/standard/tests/random/random_int.phpt index 94654a7f72..6fd04420ee 100644 --- a/ext/standard/tests/random/random_int.phpt +++ b/ext/standard/tests/random/random_int.phpt @@ -15,7 +15,7 @@ var_dump(is_int(random_int(PHP_INT_MIN, PHP_INT_MAX))); var_dump(random_int(42,42)); ?> ---EXPECTF-- +--EXPECT-- bool(true) bool(true) bool(true) diff --git a/ext/standard/tests/serialize/bug45706.phpt b/ext/standard/tests/serialize/bug45706.phpt index cc71dec4e6..c29081cab7 100644 --- a/ext/standard/tests/serialize/bug45706.phpt +++ b/ext/standard/tests/serialize/bug45706.phpt @@ -12,7 +12,7 @@ $s = serialize($x); $s = str_replace("Foo", "Bar", $s); $y = unserialize($s); var_dump($y); ---EXPECTF-- +--EXPECT-- array(2) { [0]=> object(__PHP_Incomplete_Class)#3 (5) { diff --git a/ext/standard/tests/streams/bug61115.phpt b/ext/standard/tests/streams/bug61115.phpt index 3caffde232..ce6b57651c 100644 --- a/ext/standard/tests/streams/bug61115.phpt +++ b/ext/standard/tests/streams/bug61115.phpt @@ -13,5 +13,5 @@ try { echo $e->getMessage(), "\n"; } ?> ---EXPECTF-- +--EXPECT-- Object of class Closure could not be converted to string diff --git a/ext/standard/tests/streams/bug78662.phpt b/ext/standard/tests/streams/bug78662.phpt index e874d5aef6..2ea00b67b1 100644 --- a/ext/standard/tests/streams/bug78662.phpt +++ b/ext/standard/tests/streams/bug78662.phpt @@ -26,7 +26,7 @@ var_dump(fwrite($f, "bar")); var_dump(fread($f, 100)); ?> Done ---EXPECTF-- +--EXPECT-- bool(false) bool(false) Done diff --git a/ext/standard/tests/streams/stream_set_timeout_error.phpt b/ext/standard/tests/streams/stream_set_timeout_error.phpt index 7dcc645422..64e9aa5773 100644 --- a/ext/standard/tests/streams/stream_set_timeout_error.phpt +++ b/ext/standard/tests/streams/stream_set_timeout_error.phpt @@ -41,7 +41,7 @@ fclose($server); echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing stream_set_timeout() : error conditions *** -- Testing stream_set_timeout() function with a closed socket -- diff --git a/ext/standard/tests/strings/chr_error.phpt b/ext/standard/tests/strings/chr_error.phpt index 2603b69210..b6bd9973b6 100644 --- a/ext/standard/tests/strings/chr_error.phpt +++ b/ext/standard/tests/strings/chr_error.phpt @@ -26,7 +26,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- *** Testing chr() : error conditions *** -- Testing chr() function with no arguments -- diff --git a/ext/standard/tests/strings/fprintf_error.phpt b/ext/standard/tests/strings/fprintf_error.phpt index 1ffc188051..bfef30a75b 100644 --- a/ext/standard/tests/strings/fprintf_error.phpt +++ b/ext/standard/tests/strings/fprintf_error.phpt @@ -29,7 +29,7 @@ try { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Testing Error Conditions *** Wrong parameter count for fprintf() Wrong parameter count for fprintf() diff --git a/ext/standard/tests/strings/htmlentities24.phpt b/ext/standard/tests/strings/htmlentities24.phpt index f2abfd5ba8..2a04bd345e 100644 --- a/ext/standard/tests/strings/htmlentities24.phpt +++ b/ext/standard/tests/strings/htmlentities24.phpt @@ -37,7 +37,7 @@ var_dump( htmlentities($str, ENT_COMPAT) ); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Retrieving htmlentities for 256 characters *** string(12) "636872283029" string(12) "636872283129" diff --git a/ext/standard/tests/strings/htmlspecialchars.phpt b/ext/standard/tests/strings/htmlspecialchars.phpt index 6e5c5fac36..5677da6fe2 100644 --- a/ext/standard/tests/strings/htmlspecialchars.phpt +++ b/ext/standard/tests/strings/htmlspecialchars.phpt @@ -37,7 +37,7 @@ var_dump( htmlspecialchars($str, ENT_COMPAT) ); echo "Done\n" ?> ---EXPECTF-- +--EXPECT-- *** Retrieving htmlspecialchars for 256 characters *** string(12) "636872283029" string(12) "636872283129" diff --git a/ext/standard/tests/strings/ltrim.phpt b/ext/standard/tests/strings/ltrim.phpt index 51287e04d7..8ac57ca92e 100644 --- a/ext/standard/tests/strings/ltrim.phpt +++ b/ext/standard/tests/strings/ltrim.phpt @@ -41,7 +41,7 @@ var_dump( ltrim($str, "\nusi") ); echo "\nDone\n"; ?> ---EXPECTF-- +--EXPECT-- *** Output for Error Conditions *** *** Using heredoc string *** diff --git a/ext/standard/tests/strings/metaphone.phpt b/ext/standard/tests/strings/metaphone.phpt index 2bc16b3248..a6b52e3934 100644 --- a/ext/standard/tests/strings/metaphone.phpt +++ b/ext/standard/tests/strings/metaphone.phpt @@ -24,7 +24,7 @@ foreach($array as $str) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- string(0) "" string(0) "" bool(false) diff --git a/ext/standard/tests/strings/parse_str_basic1.phpt b/ext/standard/tests/strings/parse_str_basic1.phpt index 60277fa184..38652ba0fa 100644 --- a/ext/standard/tests/strings/parse_str_basic1.phpt +++ b/ext/standard/tests/strings/parse_str_basic1.phpt @@ -27,7 +27,7 @@ var_dump(parse_str($s1, $res3_array)); var_dump($res3_array); ?> ---EXPECTF-- +--EXPECT-- *** Testing parse_str() : basic functionality *** Basic test WITH undefined var for result arg diff --git a/ext/standard/tests/strings/parse_str_basic3.phpt b/ext/standard/tests/strings/parse_str_basic3.phpt index 25b5f8745d..0ea88a365b 100644 --- a/ext/standard/tests/strings/parse_str_basic3.phpt +++ b/ext/standard/tests/strings/parse_str_basic3.phpt @@ -73,7 +73,7 @@ var_dump(parse_str($str, $res)); var_dump($res); ?> ---EXPECTF-- +--EXPECT-- *** Testing parse_str() : basic functionality *** Test string with array values and results array diff --git a/ext/standard/tests/strings/printf_error.phpt b/ext/standard/tests/strings/printf_error.phpt index 62591e9e6f..e9fc0a4383 100644 --- a/ext/standard/tests/strings/printf_error.phpt +++ b/ext/standard/tests/strings/printf_error.phpt @@ -61,7 +61,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- *** Testing printf() : error conditions *** -- Testing printf() function with Zero arguments -- diff --git a/ext/standard/tests/strings/rtrim.phpt b/ext/standard/tests/strings/rtrim.phpt index 223a839f58..2fc531faad 100644 --- a/ext/standard/tests/strings/rtrim.phpt +++ b/ext/standard/tests/strings/rtrim.phpt @@ -42,7 +42,7 @@ var_dump( rtrim($str, "ing") ); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- *** Output for Normal Behaviour *** string(10) "rtrim test" string(13) "rtrim test " diff --git a/ext/standard/tests/strings/soundex.phpt b/ext/standard/tests/strings/soundex.phpt index ef61ac495e..c4acc2ff68 100644 --- a/ext/standard/tests/strings/soundex.phpt +++ b/ext/standard/tests/strings/soundex.phpt @@ -30,7 +30,7 @@ foreach ($array as $str) { echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- bool(false) string(4) "0000" string(4) "F650" diff --git a/ext/standard/tests/strings/sprintf_variation15.phpt b/ext/standard/tests/strings/sprintf_variation15.phpt index 07774a92ec..66d85647ff 100644 --- a/ext/standard/tests/strings/sprintf_variation15.phpt +++ b/ext/standard/tests/strings/sprintf_variation15.phpt @@ -74,7 +74,7 @@ foreach($string_values as $string_value) { echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing sprintf() : string formats with string values *** -- Iteration 1 -- diff --git a/ext/standard/tests/strings/sscanf_error.phpt b/ext/standard/tests/strings/sscanf_error.phpt index ffaefb8418..0af8f9ed14 100644 --- a/ext/standard/tests/strings/sscanf_error.phpt +++ b/ext/standard/tests/strings/sscanf_error.phpt @@ -20,7 +20,7 @@ try { echo $exception->getMessage() . "\n"; } ?> ---EXPECTF-- +--EXPECT-- *** Testing sscanf() : error conditions *** -- Testing sscanf() function with more than expected no. of arguments -- diff --git a/ext/standard/tests/strings/str_ireplace.phpt b/ext/standard/tests/strings/str_ireplace.phpt index a5a35769e4..c360004a14 100644 --- a/ext/standard/tests/strings/str_ireplace.phpt +++ b/ext/standard/tests/strings/str_ireplace.phpt @@ -44,7 +44,7 @@ var_dump($Data = str_ireplace("\n", "<br>", $Data)); echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- string(0) "" string(8) "aaaaaaaT" string(8) "aaaaaaaT" diff --git a/ext/standard/tests/strings/stristr.phpt b/ext/standard/tests/strings/stristr.phpt index 7b1b5312a1..09e6cff53c 100644 --- a/ext/standard/tests/strings/stristr.phpt +++ b/ext/standard/tests/strings/stristr.phpt @@ -14,7 +14,7 @@ stristr() function var_dump(md5(stristr("\\\\a\\", "\\a"))); var_dump(stristr("tEsT sTrInG", " ")); ?> ---EXPECTF-- +--EXPECT-- string(11) "tEsT sTrInG" string(6) "sTrInG" string(6) "sTrInG" diff --git a/ext/standard/tests/strings/strrchr_variation1.phpt b/ext/standard/tests/strings/strrchr_variation1.phpt index a75dd96bbf..f28571ba7f 100644 --- a/ext/standard/tests/strings/strrchr_variation1.phpt +++ b/ext/standard/tests/strings/strrchr_variation1.phpt @@ -81,7 +81,7 @@ for($index=0; $index<count($needle); $index++) { } echo "*** Done ***"; ?> ---EXPECTF-- +--EXPECT-- *** Testing strrchr() function: with various double quoted strings *** -- Iteration 1 -- string(16) "lo123456he #4 A " diff --git a/ext/standard/tests/strings/strrchr_variation2.phpt b/ext/standard/tests/strings/strrchr_variation2.phpt index 2ff6720fb9..e6e510dd55 100644 --- a/ext/standard/tests/strings/strrchr_variation2.phpt +++ b/ext/standard/tests/strings/strrchr_variation2.phpt @@ -81,7 +81,7 @@ for($index=0; $index<count($needle); $index++) { } echo "*** Done ***"; ?> ---EXPECTF-- +--EXPECT-- *** Testing strrchr() function: with various single quoted strings *** -- Iteration 1 -- string(22) "lo123456he \x234 \101 " diff --git a/ext/standard/tests/strings/strtolower.phpt b/ext/standard/tests/strings/strtolower.phpt index 7c7e2bb4c7..041b66a00c 100644 --- a/ext/standard/tests/strings/strtolower.phpt +++ b/ext/standard/tests/strings/strtolower.phpt @@ -65,7 +65,7 @@ else echo "*** Done ***"; ?> ---EXPECTF-- +--EXPECT-- *** Testing strtolower() with 128 chars *** 00 => 00 01 => 01 diff --git a/ext/standard/tests/strings/strtoupper1.phpt b/ext/standard/tests/strings/strtoupper1.phpt index c243ff10c7..6c7434ba16 100644 --- a/ext/standard/tests/strings/strtoupper1.phpt +++ b/ext/standard/tests/strings/strtoupper1.phpt @@ -65,7 +65,7 @@ else echo "*** Done ***"; ?> ---EXPECTF-- +--EXPECT-- *** Testing strtoupper() with 128 chars *** 00 => 00 01 => 01 diff --git a/ext/standard/tests/strings/strval_error.phpt b/ext/standard/tests/strings/strval_error.phpt index a363e26f24..88cca824a6 100644 --- a/ext/standard/tests/strings/strval_error.phpt +++ b/ext/standard/tests/strings/strval_error.phpt @@ -25,7 +25,7 @@ try { } ?> ---EXPECTF-- +--EXPECT-- *** Testing strval() : error conditions *** -- Testing strval() function with object which has not toString() method -- diff --git a/ext/standard/tests/strings/substr.phpt b/ext/standard/tests/strings/substr.phpt index fe687ed1ae..6028c17008 100644 --- a/ext/standard/tests/strings/substr.phpt +++ b/ext/standard/tests/strings/substr.phpt @@ -66,7 +66,7 @@ var_dump (substr("abcdef" , 2, NULL) ); echo"\nDone"; ?> ---EXPECTF-- +--EXPECT-- --- Iteration 1 --- -- Variations for two arguments -- diff --git a/ext/standard/tests/strings/trim1.phpt b/ext/standard/tests/strings/trim1.phpt index 1ad504c61d..a31d7213a1 100644 --- a/ext/standard/tests/strings/trim1.phpt +++ b/ext/standard/tests/strings/trim1.phpt @@ -49,7 +49,7 @@ var_dump( trim($str, "us\ning") ); echo "\nDone"; ?> ---EXPECTF-- +--EXPECT-- string(0) "" string(0) "" string(1) "0" diff --git a/ext/standard/tests/strings/vfprintf_error1.phpt b/ext/standard/tests/strings/vfprintf_error1.phpt index f2057ea388..fdaecd6fb3 100644 --- a/ext/standard/tests/strings/vfprintf_error1.phpt +++ b/ext/standard/tests/strings/vfprintf_error1.phpt @@ -42,7 +42,7 @@ $file = 'vfprintf_error1.txt'; unlink( $file ); ?> ---EXPECTF-- +--EXPECT-- -- Testing vfprintf() function with more than expected no. of arguments -- Wrong parameter count for vfprintf() Wrong parameter count for vfprintf() diff --git a/ext/standard/tests/time/strptime_error.phpt b/ext/standard/tests/time/strptime_error.phpt index d7eb11fc55..87965cd1a2 100644 --- a/ext/standard/tests/time/strptime_error.phpt +++ b/ext/standard/tests/time/strptime_error.phpt @@ -24,7 +24,7 @@ $format = '%b %d %Y %H:%M:%S'; var_dump( strptime('foo', $format) ); ?> ---EXPECTF-- +--EXPECT-- *** Testing strptime() : error conditions *** -- Testing strptime() function on failure -- diff --git a/ext/tokenizer/tests/001.phpt b/ext/tokenizer/tests/001.phpt index 8e58c81891..006377d5e9 100644 --- a/ext/tokenizer/tests/001.phpt +++ b/ext/tokenizer/tests/001.phpt @@ -129,7 +129,7 @@ echo token_name(0x8000000F), "\n"; echo "Done\n"; ?> ---EXPECTF-- +--EXPECT-- T_INCLUDE T_INCLUDE_ONCE T_EVAL diff --git a/ext/xmlreader/tests/static.phpt b/ext/xmlreader/tests/static.phpt index 1c6cb5b870..a722e31105 100644 --- a/ext/xmlreader/tests/static.phpt +++ b/ext/xmlreader/tests/static.phpt @@ -22,7 +22,7 @@ while ($reader->read()) { echo $reader->name, "\n"; } ?> ---EXPECTF-- +--EXPECT-- books books books diff --git a/ext/xmlwriter/tests/bug41326.phpt b/ext/xmlwriter/tests/bug41326.phpt index 886e149261..c04ffe3167 100644 --- a/ext/xmlwriter/tests/bug41326.phpt +++ b/ext/xmlwriter/tests/bug41326.phpt @@ -35,7 +35,7 @@ $xw->endElement(); $xw->endDocument(); print $xw->flush(true); ?> ---EXPECTF-- +--EXPECT-- <?xml version="1.0"?> <test> <foo/> diff --git a/tests/output/stream_isatty_err.phpt b/tests/output/stream_isatty_err.phpt index 55a25f1c9f..e7c1038350 100644 --- a/tests/output/stream_isatty_err.phpt +++ b/tests/output/stream_isatty_err.phpt @@ -13,7 +13,7 @@ STDERR require __DIR__.'/stream_isatty.inc'; testToStdErr(); ?> ---EXPECTF-- +--EXPECT-- STDIN (constant): bool(true) STDIN (fopen): bool(true) STDIN (php://fd/0): bool(true) diff --git a/tests/output/stream_isatty_in-err.phpt b/tests/output/stream_isatty_in-err.phpt index 2554eb4689..73514955d4 100644 --- a/tests/output/stream_isatty_in-err.phpt +++ b/tests/output/stream_isatty_in-err.phpt @@ -13,7 +13,7 @@ STDIN STDERR require __DIR__.'/stream_isatty.inc'; testToStdErr(); ?> ---EXPECTF-- +--EXPECT-- STDIN (constant): bool(false) STDIN (fopen): bool(false) STDIN (php://fd/0): bool(false) diff --git a/tests/output/stream_isatty_in-out-err.phpt b/tests/output/stream_isatty_in-out-err.phpt index 496bdd100e..9b65e8861b 100644 --- a/tests/output/stream_isatty_in-out-err.phpt +++ b/tests/output/stream_isatty_in-out-err.phpt @@ -13,7 +13,7 @@ STDIN STDOUT STDERR require __DIR__.'/stream_isatty.inc'; testToStdOut(); ?> ---EXPECTF-- +--EXPECT-- STDIN (constant): bool(false) STDIN (fopen): bool(false) STDIN (php://fd/0): bool(false) diff --git a/tests/output/stream_isatty_in-out.phpt b/tests/output/stream_isatty_in-out.phpt index d58e9aa05c..c2bb346854 100644 --- a/tests/output/stream_isatty_in-out.phpt +++ b/tests/output/stream_isatty_in-out.phpt @@ -13,7 +13,7 @@ STDIN STDOUT require __DIR__.'/stream_isatty.inc'; testToStdOut(); ?> ---EXPECTF-- +--EXPECT-- STDIN (constant): bool(false) STDIN (fopen): bool(false) STDIN (php://fd/0): bool(false) diff --git a/tests/output/stream_isatty_out-err.phpt b/tests/output/stream_isatty_out-err.phpt index e3ec1237bc..dc113a9720 100644 --- a/tests/output/stream_isatty_out-err.phpt +++ b/tests/output/stream_isatty_out-err.phpt @@ -13,7 +13,7 @@ STDOUT STDERR require __DIR__.'/stream_isatty.inc'; testToStdOut(); ?> ---EXPECTF-- +--EXPECT-- STDIN (constant): bool(true) STDIN (fopen): bool(true) STDIN (php://fd/0): bool(true) diff --git a/tests/output/stream_isatty_out.phpt b/tests/output/stream_isatty_out.phpt index 3ea4996ac4..f18c986c5a 100644 --- a/tests/output/stream_isatty_out.phpt +++ b/tests/output/stream_isatty_out.phpt @@ -13,7 +13,7 @@ STDOUT require __DIR__.'/stream_isatty.inc'; testToStdOut(); ?> ---EXPECTF-- +--EXPECT-- STDIN (constant): bool(true) STDIN (fopen): bool(true) STDIN (php://fd/0): bool(true) # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # Date: Mon Apr 27 21:01:47 2020 +0200 # # On branch tests/use-simpler-expect-section # Your branch and 'fork/tests/use-simpler-expect-section' have diverged, # and have 1 and 1 different commits each, respectively. # (use "git pull" to merge the remote branch into yours) # # Changes to be committed: # modified: Zend/tests/005.phpt # modified: Zend/tests/bug27669.phpt # modified: Zend/tests/bug51827.phpt # modified: Zend/tests/bug63206.phpt # modified: Zend/tests/bug63206_1.phpt # modified: Zend/tests/bug63206_2.phpt # modified: Zend/tests/incompat_ctx_user.phpt # modified: Zend/tests/instanceof_001.phpt # modified: Zend/tests/unexpected_ref_bug.phpt # modified: ext/date/tests/012.phpt # modified: ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt # modified: ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt # modified: ext/date/tests/date_parse_001.phpt # modified: ext/date/tests/date_parse_error.phpt # modified: ext/date/tests/gmmktime_basic.phpt # modified: ext/date/tests/mktime_error.phpt # modified: ext/date/tests/timezone_abbreviations_list_basic1.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic.phpt # modified: ext/filter/tests/007.phpt # modified: ext/filter/tests/008.phpt # modified: ext/filter/tests/010.phpt # modified: ext/hash/tests/hash_hkdf_edges.phpt # modified: ext/hash/tests/hash_hmac_file_basic.phpt # modified: ext/json/tests/json_last_error_msg_error.phpt # modified: ext/libxml/tests/bug76777.phpt # modified: ext/pcre/tests/preg_replace_error2.phpt # modified: ext/pcre/tests/split2.phpt # modified: ext/phar/tests/phar_isvalidpharfilename.phpt # modified: ext/phar/tests/pharfileinfo_chmod.phpt # modified: ext/phar/tests/pharfileinfo_setmetadata.phpt # modified: ext/phar/tests/stat2_5.3.phpt # modified: ext/posix/tests/posix_getgrgid_error.phpt # modified: ext/posix/tests/posix_getpgid_error.phpt # modified: ext/posix/tests/posix_getpwuid_error.phpt # modified: ext/posix/tests/posix_getsid_error.phpt # modified: ext/posix/tests/posix_initgroups.phpt # modified: ext/posix/tests/posix_kill_error.phpt # modified: ext/posix/tests/posix_strerror_error.phpt # modified: ext/reflection/tests/ReflectionClass_hasProperty_002.phpt # modified: ext/reflection/tests/ReflectionMethod_getClosure_error.phpt # modified: ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt # modified: ext/reflection/tests/ReflectionObject_getName_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_setValue_error.phpt # modified: ext/session/tests/bug79221.phpt # modified: ext/session/tests/session_cache_limiter_error.phpt # modified: ext/spl/tests/bug61347.phpt # modified: ext/spl/tests/fileobject_005.phpt # modified: ext/spl/tests/iterator_045.phpt # modified: ext/spl/tests/regexIterator_setMode_error.phpt # modified: ext/spl/tests/spl_heap_is_empty_basic.phpt # modified: ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt # modified: ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt # modified: ext/standard/tests/array/005.phpt # modified: ext/standard/tests/array/009.phpt # modified: ext/standard/tests/array/array_diff_assoc_error.phpt # modified: ext/standard/tests/array/array_diff_error.phpt # modified: ext/standard/tests/array/array_diff_key_error.phpt # modified: ext/standard/tests/array/array_filter.phpt # modified: ext/standard/tests/array/array_filter_variation10.phpt # modified: ext/standard/tests/array/array_key_exists_variation3.phpt # modified: ext/standard/tests/array/array_map_error.phpt # modified: ext/standard/tests/array/array_merge.phpt # modified: ext/standard/tests/array/array_push.phpt # modified: ext/standard/tests/array/array_slice.phpt # modified: ext/standard/tests/array/array_unshift.phpt # modified: ext/standard/tests/array/array_walk.phpt # modified: ext/standard/tests/array/array_walk_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive1.phpt # modified: ext/standard/tests/array/array_walk_recursive_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive_variation7.phpt # modified: ext/standard/tests/array/array_walk_variation7.phpt # modified: ext/standard/tests/array/uasort_variation8.phpt # modified: ext/standard/tests/array/usort_variation8.phpt # modified: ext/standard/tests/assert/assert_variation.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_1.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_2.phpt # modified: ext/standard/tests/file/basename.phpt # modified: ext/standard/tests/file/fscanf.phpt # modified: ext/standard/tests/file/fscanf_variation10.phpt # modified: ext/standard/tests/file/is_dir_variation3.phpt # modified: ext/standard/tests/file/is_executable_error.phpt # modified: ext/standard/tests/file/is_executable_variation3.phpt # modified: ext/standard/tests/file/is_file_variation3.phpt # modified: ext/standard/tests/file/is_readable_error.phpt # modified: ext/standard/tests/file/is_readable_variation3.phpt # modified: ext/standard/tests/file/is_uploaded_file_basic.phpt # modified: ext/standard/tests/file/is_writable_error.phpt # modified: ext/standard/tests/file/is_writable_variation3.phpt # modified: ext/standard/tests/file/move_uploaded_file_basic.phpt # modified: ext/standard/tests/general_functions/get_include_path_basic.phpt # modified: ext/standard/tests/general_functions/include_path.phpt # modified: ext/standard/tests/general_functions/is_array.phpt # modified: ext/standard/tests/general_functions/is_bool.phpt # modified: ext/standard/tests/general_functions/is_float_64bit.phpt # modified: ext/standard/tests/general_functions/is_int_64bit.phpt # modified: ext/standard/tests/general_functions/is_null.phpt # modified: ext/standard/tests/general_functions/is_numeric.phpt # modified: ext/standard/tests/general_functions/is_object.phpt # modified: ext/standard/tests/general_functions/is_scalar.phpt # modified: ext/standard/tests/general_functions/is_string.phpt # modified: ext/standard/tests/general_functions/ob_get_length_basic.phpt # modified: ext/standard/tests/general_functions/php_uname_error.phpt # modified: ext/standard/tests/general_functions/print_r.phpt # modified: ext/standard/tests/general_functions/print_r_64bit.phpt # modified: ext/standard/tests/general_functions/var_dump_64bit.phpt # modified: ext/standard/tests/general_functions/var_export-locale.phpt # modified: ext/standard/tests/image/image_type_to_extension.phpt # modified: ext/standard/tests/math/lcg_value_basic.phpt # modified: ext/standard/tests/network/inet.phpt # modified: ext/standard/tests/network/ip_x86_64.phpt # modified: ext/standard/tests/random/random_int.phpt # modified: ext/standard/tests/serialize/bug45706.phpt # modified: ext/standard/tests/streams/bug61115.phpt # modified: ext/standard/tests/streams/bug78662.phpt # modified: ext/standard/tests/streams/stream_set_timeout_error.phpt # modified: ext/standard/tests/strings/chr_error.phpt # modified: ext/standard/tests/strings/fprintf_error.phpt # modified: ext/standard/tests/strings/htmlentities24.phpt # modified: ext/standard/tests/strings/htmlspecialchars.phpt # modified: ext/standard/tests/strings/ltrim.phpt # modified: ext/standard/tests/strings/metaphone.phpt # modified: ext/standard/tests/strings/parse_str_basic1.phpt # modified: ext/standard/tests/strings/parse_str_basic3.phpt # modified: ext/standard/tests/strings/printf_error.phpt # modified: ext/standard/tests/strings/rtrim.phpt # modified: ext/standard/tests/strings/soundex.phpt # modified: ext/standard/tests/strings/sprintf_variation15.phpt # modified: ext/standard/tests/strings/sscanf_error.phpt # modified: ext/standard/tests/strings/str_ireplace.phpt # modified: ext/standard/tests/strings/stristr.phpt # modified: ext/standard/tests/strings/strrchr_variation1.phpt # modified: ext/standard/tests/strings/strrchr_variation2.phpt # modified: ext/standard/tests/strings/strtolower.phpt # modified: ext/standard/tests/strings/strtoupper1.phpt # modified: ext/standard/tests/strings/strval_error.phpt # modified: ext/standard/tests/strings/substr.phpt # modified: ext/standard/tests/strings/trim1.phpt # modified: ext/standard/tests/strings/vfprintf_error1.phpt # modified: ext/standard/tests/time/strptime_error.phpt # modified: ext/tokenizer/tests/001.phpt # modified: ext/xmlreader/tests/static.phpt # modified: ext/xmlwriter/tests/bug41326.phpt # modified: tests/output/stream_isatty_err.phpt # modified: tests/output/stream_isatty_in-err.phpt # modified: tests/output/stream_isatty_in-out-err.phpt # modified: tests/output/stream_isatty_in-out.phpt # modified: tests/output/stream_isatty_out-err.phpt # modified: tests/output/stream_isatty_out.phpt # # Changes not staged for commit: # modified: run-tests.php # # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # Date: Mon Apr 27 21:01:47 2020 +0200 # # On branch tests/use-simpler-expect-section # Your branch is up to date with 'fork/tests/use-simpler-expect-section'. # # Changes to be committed: # modified: Zend/tests/005.phpt # modified: Zend/tests/bug27669.phpt # modified: Zend/tests/bug51827.phpt # modified: Zend/tests/bug63206.phpt # modified: Zend/tests/bug63206_1.phpt # modified: Zend/tests/bug63206_2.phpt # modified: Zend/tests/incompat_ctx_user.phpt # modified: Zend/tests/instanceof_001.phpt # modified: Zend/tests/unexpected_ref_bug.phpt # modified: ext/date/tests/012.phpt # modified: ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt # modified: ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt # modified: ext/date/tests/date_parse_001.phpt # modified: ext/date/tests/date_parse_error.phpt # modified: ext/date/tests/gmmktime_basic.phpt # modified: ext/date/tests/mktime_error.phpt # modified: ext/date/tests/timezone_abbreviations_list_basic1.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic.phpt # modified: ext/filter/tests/007.phpt # modified: ext/filter/tests/008.phpt # modified: ext/filter/tests/010.phpt # modified: ext/hash/tests/hash_hkdf_edges.phpt # modified: ext/hash/tests/hash_hmac_file_basic.phpt # modified: ext/json/tests/json_last_error_msg_error.phpt # modified: ext/libxml/tests/bug76777.phpt # modified: ext/pcre/tests/preg_replace_error2.phpt # modified: ext/pcre/tests/split2.phpt # modified: ext/phar/tests/phar_isvalidpharfilename.phpt # modified: ext/phar/tests/pharfileinfo_chmod.phpt # modified: ext/phar/tests/pharfileinfo_setmetadata.phpt # modified: ext/phar/tests/stat2_5.3.phpt # modified: ext/posix/tests/posix_getgrgid_error.phpt # modified: ext/posix/tests/posix_getpgid_error.phpt # modified: ext/posix/tests/posix_getpwuid_error.phpt # modified: ext/posix/tests/posix_getsid_error.phpt # modified: ext/posix/tests/posix_initgroups.phpt # modified: ext/posix/tests/posix_kill_error.phpt # modified: ext/posix/tests/posix_strerror_error.phpt # modified: ext/reflection/tests/ReflectionClass_hasProperty_002.phpt # modified: ext/reflection/tests/ReflectionMethod_getClosure_error.phpt # modified: ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt # modified: ext/reflection/tests/ReflectionObject_getName_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_setValue_error.phpt # modified: ext/session/tests/bug79221.phpt # modified: ext/session/tests/session_cache_limiter_error.phpt # modified: ext/spl/tests/bug61347.phpt # modified: ext/spl/tests/fileobject_005.phpt # modified: ext/spl/tests/iterator_045.phpt # modified: ext/spl/tests/regexIterator_setMode_error.phpt # modified: ext/spl/tests/spl_heap_is_empty_basic.phpt # modified: ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt # modified: ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt # modified: ext/standard/tests/array/005.phpt # modified: ext/standard/tests/array/009.phpt # modified: ext/standard/tests/array/array_diff_assoc_error.phpt # modified: ext/standard/tests/array/array_diff_error.phpt # modified: ext/standard/tests/array/array_diff_key_error.phpt # modified: ext/standard/tests/array/array_filter.phpt # modified: ext/standard/tests/array/array_filter_variation10.phpt # modified: ext/standard/tests/array/array_key_exists_variation3.phpt # modified: ext/standard/tests/array/array_map_error.phpt # modified: ext/standard/tests/array/array_merge.phpt # modified: ext/standard/tests/array/array_push.phpt # modified: ext/standard/tests/array/array_slice.phpt # modified: ext/standard/tests/array/array_unshift.phpt # modified: ext/standard/tests/array/array_walk.phpt # modified: ext/standard/tests/array/array_walk_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive1.phpt # modified: ext/standard/tests/array/array_walk_recursive_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive_variation7.phpt # modified: ext/standard/tests/array/array_walk_variation7.phpt # modified: ext/standard/tests/array/uasort_variation8.phpt # modified: ext/standard/tests/array/usort_variation8.phpt # modified: ext/standard/tests/assert/assert_variation.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_1.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_2.phpt # modified: ext/standard/tests/file/basename.phpt # modified: ext/standard/tests/file/fscanf.phpt # modified: ext/standard/tests/file/fscanf_variation10.phpt # modified: ext/standard/tests/file/is_dir_variation3.phpt # modified: ext/standard/tests/file/is_executable_error.phpt # modified: ext/standard/tests/file/is_executable_variation3.phpt # modified: ext/standard/tests/file/is_file_variation3.phpt # modified: ext/standard/tests/file/is_readable_error.phpt # modified: ext/standard/tests/file/is_readable_variation3.phpt # modified: ext/standard/tests/file/is_uploaded_file_basic.phpt # modified: ext/standard/tests/file/is_writable_error.phpt # modified: ext/standard/tests/file/is_writable_variation3.phpt # modified: ext/standard/tests/file/move_uploaded_file_basic.phpt # modified: ext/standard/tests/general_functions/get_include_path_basic.phpt # modified: ext/standard/tests/general_functions/include_path.phpt # modified: ext/standard/tests/general_functions/is_array.phpt # modified: ext/standard/tests/general_functions/is_bool.phpt # modified: ext/standard/tests/general_functions/is_float_64bit.phpt # modified: ext/standard/tests/general_functions/is_int_64bit.phpt # modified: ext/standard/tests/general_functions/is_null.phpt # modified: ext/standard/tests/general_functions/is_numeric.phpt # modified: ext/standard/tests/general_functions/is_object.phpt # modified: ext/standard/tests/general_functions/is_scalar.phpt # modified: ext/standard/tests/general_functions/is_string.phpt # modified: ext/standard/tests/general_functions/ob_get_length_basic.phpt # modified: ext/standard/tests/general_functions/php_uname_error.phpt # modified: ext/standard/tests/general_functions/print_r.phpt # modified: ext/standard/tests/general_functions/print_r_64bit.phpt # modified: ext/standard/tests/general_functions/var_dump_64bit.phpt # modified: ext/standard/tests/general_functions/var_export-locale.phpt # modified: ext/standard/tests/image/image_type_to_extension.phpt # modified: ext/standard/tests/math/lcg_value_basic.phpt # modified: ext/standard/tests/network/inet.phpt # modified: ext/standard/tests/network/ip_x86_64.phpt # modified: ext/standard/tests/random/random_int.phpt # modified: ext/standard/tests/serialize/bug45706.phpt # modified: ext/standard/tests/streams/bug61115.phpt # modified: ext/standard/tests/streams/bug78662.phpt # modified: ext/standard/tests/streams/stream_set_timeout_error.phpt # modified: ext/standard/tests/strings/chr_error.phpt # modified: ext/standard/tests/strings/fprintf_error.phpt # modified: ext/standard/tests/strings/htmlentities24.phpt # modified: ext/standard/tests/strings/htmlspecialchars.phpt # modified: ext/standard/tests/strings/ltrim.phpt # modified: ext/standard/tests/strings/metaphone.phpt # modified: ext/standard/tests/strings/parse_str_basic1.phpt # modified: ext/standard/tests/strings/parse_str_basic3.phpt # modified: ext/standard/tests/strings/printf_error.phpt # modified: ext/standard/tests/strings/rtrim.phpt # modified: ext/standard/tests/strings/soundex.phpt # modified: ext/standard/tests/strings/sprintf_variation15.phpt # modified: ext/standard/tests/strings/sscanf_error.phpt # modified: ext/standard/tests/strings/str_ireplace.phpt # modified: ext/standard/tests/strings/stristr.phpt # modified: ext/standard/tests/strings/strrchr_variation1.phpt # modified: ext/standard/tests/strings/strrchr_variation2.phpt # modified: ext/standard/tests/strings/strtolower.phpt # modified: ext/standard/tests/strings/strtoupper1.phpt # modified: ext/standard/tests/strings/strval_error.phpt # modified: ext/standard/tests/strings/substr.phpt # modified: ext/standard/tests/strings/trim1.phpt # modified: ext/standard/tests/strings/vfprintf_error1.phpt # modified: ext/standard/tests/time/strptime_error.phpt # modified: ext/tokenizer/tests/001.phpt # modified: ext/xmlreader/tests/static.phpt # modified: ext/xmlwriter/tests/bug41326.phpt # modified: tests/output/stream_isatty_err.phpt # modified: tests/output/stream_isatty_in-err.phpt # modified: tests/output/stream_isatty_in-out-err.phpt # modified: tests/output/stream_isatty_in-out.phpt # modified: tests/output/stream_isatty_out-err.phpt # modified: tests/output/stream_isatty_out.phpt # # Changes not staged for commit: # modified: run-tests.php # # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # Date: Mon Apr 27 21:01:47 2020 +0200 # # On branch tests/use-simpler-expect-section # Your branch is up to date with 'fork/tests/use-simpler-expect-section'. # # Changes to be committed: # modified: Zend/tests/005.phpt # modified: Zend/tests/bug27669.phpt # modified: Zend/tests/bug51827.phpt # modified: Zend/tests/bug63206.phpt # modified: Zend/tests/bug63206_1.phpt # modified: Zend/tests/bug63206_2.phpt # modified: Zend/tests/incompat_ctx_user.phpt # modified: Zend/tests/instanceof_001.phpt # modified: Zend/tests/unexpected_ref_bug.phpt # modified: ext/date/tests/012.phpt # modified: ext/date/tests/DatePeriod_wrong_recurrence_on_constructor.phpt # modified: ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt # modified: ext/date/tests/date_parse_001.phpt # modified: ext/date/tests/date_parse_error.phpt # modified: ext/date/tests/gmmktime_basic.phpt # modified: ext/date/tests/mktime_error.phpt # modified: ext/date/tests/timezone_abbreviations_list_basic1.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic-mb.phpt # modified: ext/fileinfo/tests/finfo_set_flags_basic.phpt # modified: ext/filter/tests/007.phpt # modified: ext/filter/tests/008.phpt # modified: ext/filter/tests/010.phpt # modified: ext/hash/tests/hash_hkdf_edges.phpt # modified: ext/hash/tests/hash_hmac_file_basic.phpt # modified: ext/json/tests/json_last_error_msg_error.phpt # modified: ext/libxml/tests/bug76777.phpt # modified: ext/pcre/tests/preg_replace_error2.phpt # modified: ext/pcre/tests/split2.phpt # modified: ext/phar/tests/phar_isvalidpharfilename.phpt # modified: ext/phar/tests/pharfileinfo_chmod.phpt # modified: ext/phar/tests/pharfileinfo_setmetadata.phpt # modified: ext/phar/tests/stat2_5.3.phpt # modified: ext/posix/tests/posix_getgrgid_error.phpt # modified: ext/posix/tests/posix_getpgid_error.phpt # modified: ext/posix/tests/posix_getpwuid_error.phpt # modified: ext/posix/tests/posix_getsid_error.phpt # modified: ext/posix/tests/posix_initgroups.phpt # modified: ext/posix/tests/posix_kill_error.phpt # modified: ext/posix/tests/posix_strerror_error.phpt # modified: ext/reflection/tests/ReflectionClass_hasProperty_002.phpt # modified: ext/reflection/tests/ReflectionMethod_getClosure_error.phpt # modified: ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt # modified: ext/reflection/tests/ReflectionObject_getName_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_isDefault_basic.phpt # modified: ext/reflection/tests/ReflectionProperty_setValue_error.phpt # modified: ext/session/tests/bug79221.phpt # modified: ext/session/tests/session_cache_limiter_error.phpt # modified: ext/spl/tests/bug61347.phpt # modified: ext/spl/tests/fileobject_005.phpt # modified: ext/spl/tests/iterator_045.phpt # modified: ext/spl/tests/regexIterator_setMode_error.phpt # modified: ext/spl/tests/spl_heap_is_empty_basic.phpt # modified: ext/sqlite3/tests/sqlite3_40_setauthorizer.phpt # modified: ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt # modified: ext/standard/tests/array/005.phpt # modified: ext/standard/tests/array/009.phpt # modified: ext/standard/tests/array/array_diff_assoc_error.phpt # modified: ext/standard/tests/array/array_diff_error.phpt # modified: ext/standard/tests/array/array_diff_key_error.phpt # modified: ext/standard/tests/array/array_filter.phpt # modified: ext/standard/tests/array/array_filter_variation10.phpt # modified: ext/standard/tests/array/array_key_exists_variation3.phpt # modified: ext/standard/tests/array/array_map_error.phpt # modified: ext/standard/tests/array/array_merge.phpt # modified: ext/standard/tests/array/array_push.phpt # modified: ext/standard/tests/array/array_slice.phpt # modified: ext/standard/tests/array/array_unshift.phpt # modified: ext/standard/tests/array/array_walk.phpt # modified: ext/standard/tests/array/array_walk_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive1.phpt # modified: ext/standard/tests/array/array_walk_recursive_error2.phpt # modified: ext/standard/tests/array/array_walk_recursive_variation7.phpt # modified: ext/standard/tests/array/array_walk_variation7.phpt # modified: ext/standard/tests/array/uasort_variation8.phpt # modified: ext/standard/tests/array/usort_variation8.phpt # modified: ext/standard/tests/assert/assert_variation.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_1.phpt # modified: ext/standard/tests/file/auto_detect_line_endings_2.phpt # modified: ext/standard/tests/file/basename.phpt # modified: ext/standard/tests/file/fscanf.phpt # modified: ext/standard/tests/file/fscanf_variation10.phpt # modified: ext/standard/tests/file/is_dir_variation3.phpt # modified: ext/standard/tests/file/is_executable_error.phpt # modified: ext/standard/tests/file/is_executable_variation3.phpt # modified: ext/standard/tests/file/is_file_variation3.phpt # modified: ext/standard/tests/file/is_readable_error.phpt # modified: ext/standard/tests/file/is_readable_variation3.phpt # modified: ext/standard/tests/file/is_uploaded_file_basic.phpt # modified: ext/standard/tests/file/is_writable_error.phpt # modified: ext/standard/tests/file/is_writable_variation3.phpt # modified: ext/standard/tests/file/move_uploaded_file_basic.phpt # modified: ext/standard/tests/general_functions/get_include_path_basic.phpt # modified: ext/standard/tests/general_functions/include_path.phpt # modified: ext/standard/tests/general_functions/is_array.phpt # modified: ext/standard/tests/general_functions/is_bool.phpt # modified: ext/standard/tests/general_functions/is_float_64bit.phpt # modified: ext/standard/tests/general_functions/is_int_64bit.phpt # modified: ext/standard/tests/general_functions/is_null.phpt # modified: ext/standard/tests/general_functions/is_numeric.phpt # modified: ext/standard/tests/general_functions/is_object.phpt # modified: ext/standard/tests/general_functions/is_scalar.phpt # modified: ext/standard/tests/general_functions/is_string.phpt # modified: ext/standard/tests/general_functions/ob_get_length_basic.phpt # modified: ext/standard/tests/general_functions/php_uname_error.phpt # modified: ext/standard/tests/general_functions/print_r.phpt # modified: ext/standard/tests/general_functions/print_r_64bit.phpt # modified: ext/standard/tests/general_functions/var_dump_64bit.phpt # modified: ext/standard/tests/general_functions/var_export-locale.phpt # modified: ext/standard/tests/image/image_type_to_extension.phpt # modified: ext/standard/tests/math/lcg_value_basic.phpt # modified: ext/standard/tests/network/inet.phpt # modified: ext/standard/tests/network/ip_x86_64.phpt # modified: ext/standard/tests/random/random_int.phpt # modified: ext/standard/tests/serialize/bug45706.phpt # modified: ext/standard/tests/streams/bug61115.phpt # modified: ext/standard/tests/streams/bug78662.phpt # modified: ext/standard/tests/streams/stream_set_timeout_error.phpt # modified: ext/standard/tests/strings/chr_error.phpt # modified: ext/standard/tests/strings/fprintf_error.phpt # modified: ext/standard/tests/strings/htmlentities24.phpt # modified: ext/standard/tests/strings/htmlspecialchars.phpt # modified: ext/standard/tests/strings/ltrim.phpt # modified: ext/standard/tests/strings/metaphone.phpt # modified: ext/standard/tests/strings/parse_str_basic1.phpt # modified: ext/standard/tests/strings/parse_str_basic3.phpt # modified: ext/standard/tests/strings/printf_error.phpt # modified: ext/standard/tests/strings/rtrim.phpt # modified: ext/standard/tests/strings/soundex.phpt # modified: ext/standard/tests/strings/sprintf_variation15.phpt # modified: ext/standard/tests/strings/sscanf_error.phpt # modified: ext/standard/tests/strings/str_ireplace.phpt # modified: ext/standard/tests/strings/stristr.phpt # modified: ext/standard/tests/strings/strrchr_variation1.phpt # modified: ext/standard/tests/strings/strrchr_variation2.phpt # modified: ext/standard/tests/strings/strtolower.phpt # modified: ext/standard/tests/strings/strtoupper1.phpt # modified: ext/standard/tests/strings/strval_error.phpt # modified: ext/standard/tests/strings/substr.phpt # modified: ext/standard/tests/strings/trim1.phpt # modified: ext/standard/tests/strings/vfprintf_error1.phpt # modified: ext/standard/tests/time/strptime_error.phpt # modified: ext/tokenizer/tests/001.phpt # modified: ext/xmlreader/tests/static.phpt # modified: ext/xmlwriter/tests/bug41326.phpt # modified: tests/output/stream_isatty_err.phpt # modified: tests/output/stream_isatty_in-err.phpt # modified: tests/output/stream_isatty_in-out-err.phpt # modified: tests/output/stream_isatty_in-out.phpt # modified: tests/output/stream_isatty_out-err.phpt # modified: tests/output/stream_isatty_out.phpt # # Changes not staged for commit: # modified: run-tests.php # 2020-04-27 21:04:41 +02:00
Gabriel Caruso aaa30f14eb Reduce code duplication using for loop 2020-04-27 17:03:40 +02:00
Gabriel Caruso 7ce8c5ad89 Slipt error messages while checking magic methods attributes
Closes GH-5465
2020-04-27 16:32:00 +02:00
Nikita Popov f38d6cea42 Check func_info consistency
Make sure explicitly specified func_info is a subset of
automatically computed info. This will at least prevent
cases where a type is removed from stubs, but not removed
from func_info.

Closes GH-5471.
2020-04-27 16:25:59 +02:00
Nikita Popov 16e9d74f07 Fixed bug #79432 2020-04-27 16:22:32 +02:00
Nikita Popov c5f87eee5d Mark passthru() as RC0
This function only returns null/false, RC1 does not make sense.
2020-04-27 15:39:31 +02:00
Nikita Popov 58eafbe734 Make array_rand() type info more accurate 2020-04-27 15:36:32 +02:00
Nikita Popov cc8a8613b6 Remove MAY_BE_FALSE from range() type info 2020-04-27 15:36:32 +02:00
Máté Kocsis a6960cfb05 Fix inaccurate func infos
Closes GH-5472
2020-04-27 15:35:44 +02:00
Nikita Popov 19e886d9d8 Avoid throw expression leaks
Mark "throw" used in expression context with a flag, and don't
treat it as a BB terminator in that case. This prevents us from
optimizing away the following opcodes as unreachable, which may
result in live ranges being dropped incorrectly.

Close GH-5450.
2020-04-27 15:22:05 +02:00
Dmitry Stogov 29fc6846d8 Fixed incorrect side exit address 2020-04-27 15:59:37 +03:00
Christoph M. Becker 51dfba3d7b Show all tests on AppVeyor
This is a temporary measure to try to resolve the often failing
mysqli_insert_packet_overflow.phpt issue.  Unfortunately, I have not
been able to reproduce the test failure locally, or in my php-src fork.
2020-04-27 14:57:07 +02:00
Alex Dowad af67b06995 SessionUpdateTimestampHandler class was never implemented
It seems that in 2015, work was being done so that users could add their own custom
session handlers. The implementer intended to add a class called
SessionUpdateTimestampHandler, but never did so. The variable which was intended to point
to its class entry is never initialized.

The implementer also coded two methods for this class. Strangely, the method bodies
are declared with PHP_METHOD(SessionHandler, ...) rather than
PHP(SessionUpdateTimestampHandler, ...). However, these method implementations are not
added to the method table of any class or interface. They are just dead code.
2020-04-27 14:51:33 +02:00
Xinchen Hui 58005d7b42 Remove unnecessary register qualifier 2020-04-27 20:31:06 +08:00
Nikita Popov a447897db0 Use information about classes returned by internal functions 2020-04-27 12:50:24 +02:00
Nikita Popov fd00c7cf10 Pass existing lcname to check_magic_method_implementation 2020-04-27 12:33:29 +02:00
Gabriel Caruso 74f1547591 Use zend_string in zend_check_magic_method implementation 2020-04-27 12:23:37 +02:00
Symeon Charalabides d5e51fc186 Test xml_error_string() and xml_get_error_code()
Closes GH-5456.
2020-04-27 11:56:58 +02:00
Flávio Heleno 1baa58317f Fixed run-tests.php for PHP 7.2
Flexible heredoc syntax is only available since PHP 7.3.

Closes GH-5444.
2020-04-27 11:55:40 +02:00
Alex Dowad bbb8b95dbd Remove duplicate tests
Remove duplicate test (iterator_018.phpt)

This is exactly the same as iterator_011.phpt.

Remove duplicate test (offsets_chaining_2.phpt)

This is exactly the same as offsets_chaining_1.phpt.

Remove duplicate test (offsets_chaining_4.phpt)

This is exactly the same as offsets_chaining_3.phpt.

Remove duplicate test (ReflectionObject_export_basic1.phpt)

This is exactly the same as ReflectionObject___toString_basic1.phpt.

Remove duplicate test (ReflectionObject_export_basic2.phpt)

This is exactly the same as ReflectionObject___toString_basic2.phpt.

Closes GH-5467.
2020-04-27 11:53:57 +02:00
Vladyslav Startsev b64aee9706 Ensure bcmath scale is between 0 and INT_MAX
Make sure bcmatch scale is between 0 and INT_MAX, both for the
ini setting, and all the functions accepting a scale argument.
A ValueError is thrown if a function argument is out of range.

Closes GH-5455.
2020-04-27 11:53:26 +02:00
Nikita Popov 48a34bc120 Add helper APIs for get_gc implementations
get_gc() implementations that need to explore heterogeneous data
currently work by computing how many GC entries they need,
allocating a buffer for that and storing it on the object. This
is inefficient and wastes memory, because the buffer is retained
after the GC run.

This commit adds an API for a single global GC buffer, which can
be reused by get_gc implementations (as only one get_gc call is
ever active at the same time). The GC buffer will automatically
grow during the GC run and be discarded at the end.
2020-04-27 10:48:22 +02:00
Xinchen Hui 6a500cb249 SSE2 str_tolower 2020-04-27 16:35:06 +08:00
Nikita Popov 41c7d28c11 Add macro to get ini target address 2020-04-27 10:30:00 +02:00
Christoph M. Becker ecc6b8cc29 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79065: DOM classes do not expose properties to Reflection
2020-04-27 10:28:00 +02:00
Christoph M. Becker f578d57ee9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79470: PHP incompatible with 3rd party file system on demand
2020-04-27 09:32:02 +02:00
Levi Morrison 90db6f2cc5 Add case insensitive find_ptr hash functions
- zend_hash_find_ptr_lc(ht, zend_string *key)
 - zend_hash_str_find_ptr_lc(ht, const char *str, size_t len)

Note that zend_hash_str_find_ptr_lc used to exist in zend_compile.c
as        zend_hash_find_ptr_lc. When exporting this I figured it
was best to use the same conventions as the rest of zend_hash.h.
2020-04-26 23:29:41 +02:00
Christoph M. Becker e2f1586225 Add gen_stub.php to devel pack 2020-04-26 12:33:33 +02:00
Máté Kocsis 33c3691c33 Generate method entries from stubs for Zend classes
Closes GH-5459
2020-04-26 11:13:14 +02:00
Gabriel Caruso d21d23afef Clean section of test not working due to short open tags
Closes GH-5440
2020-04-26 02:20:43 +02:00
Gabriel Caruso 6f908a0bf4 Check Serialization magic methods structure
Closes GH-5441
2020-04-26 02:16:39 +02:00
Máté Kocsis 5bf01fca60 Use the default type error message for Exception::__construct()
Closes GH-5460
2020-04-26 00:25:42 +02:00
Máté Kocsis d7f7080bb5 Generate methods entries from stubs for ext/spl
Closes GH-5458
2020-04-25 23:54:56 +02:00
Alex Dowad 77ee4e63a6 Nothing in codebase cares whether platform has fpclass()
Therefore, don't bother checking for it in 'configure' script.

Closes GH-5453
2020-04-24 21:39:55 +02:00
Christoph M. Becker 82a72ab457 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79514: Memory leaks while including unexistent file
2020-04-24 18:17:21 +02:00
Dmitry Stogov 6ab2e82ab5 Avoid STORE of register inherited from parent trace 2020-04-24 16:32:31 +03:00
Dmitry Stogov 8a04d39d1c Skip life range with LOAD and single use 2020-04-24 16:14:58 +03:00
Dmitry Stogov 9ddf9ac98e cleanup 2020-04-24 16:14:44 +03:00
Derick Rethans 8397df274a Updated to version 2020.1 (2020a) 2020-04-24 12:31:33 +01:00
Derick Rethans 79b5ca7735 Empty merge 2020-04-24 12:31:33 +01:00
Dmitry Stogov dc379e1c45 Abort register allocation if no candidates 2020-04-24 14:24:52 +03:00
Nikita Popov 786e0ae574 Use zend_make_tmp_result() helper in more places 2020-04-24 12:10:06 +02:00
Nikita Popov f264bf2d69 Accept result znode in zend_compile_class_decl()
Make this use the same pattern we use everywhere else.
2020-04-24 12:04:54 +02:00
Ilija Tovilo f65240759f Use return in compile_expr for consistency 2020-04-24 12:01:10 +02:00
Christoph M. Becker c915c60171 Update intl test suite for ICU 67.1 2020-04-24 11:24:44 +02:00
Symeon Charalabides f7ad25f6c1 Test XSLTProcessor::importStylesheet() with invalid stylesheet 2020-04-24 10:12:50 +02:00
Christoph M. Becker 767a77ac19 Fix #36365: scandir duplicates file name at every 65535th file
Since DIR_W32.offset is declared as `uint16_t`, we have an overflow for
directories with many entries.  This patch changes the field to
`uint32_t`.
2020-04-24 09:47:56 +02:00
Sara Golemon 41a04f96b4 Remove dead checks for LOG_FILE paths, replace with CONFIG_ONLY option 2020-04-24 01:27:40 +00:00
Christoph M. Becker 53e0331302 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add additional preg_match test case
2020-04-23 17:39:47 +02:00
Ilija Tovilo 0810fcd0d0 Make throw statement an expression
RFC: https://wiki.php.net/rfc/throw_expression

This has an open issue with temporaries that are live at the time
of the throw being leaked. Landing this now for easier testing and
will revert if we cannot resolve the issue.

Closes GH-5279.
2020-04-23 12:51:23 +02:00
Jacob Dreesen 64d30c1976 Fix typo in UPGRADING [ci skip] 2020-04-23 11:54:18 +02:00
Nikita Popov cf7c68283d Fix treatment of "self" when validating against trait method
If we're validating a class method against a trait method, we need
to treat "self" in the trait method as the class where the method
is used. To achieve this, we need to thread the proto scope through
all methods, so it can be provided separately from proto.common->scope.
2020-04-23 11:41:34 +02:00
Dmitry Stogov 13df3fcb0a More accurate life range termination 2020-04-23 11:49:28 +03:00
Your Name ef0e4478c5 Add get_debug_type() function
RFC: https://wiki.php.net/rfc/get_debug_type
2020-04-23 10:45:08 +02:00
Nikita Popov 8597ec00d4 Remove support for libmysqlclient 5.0
Closes GH-5391.
2020-04-23 10:38:20 +02:00
Nikita Popov baabb5398f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #79447
2020-04-23 10:31:07 +02:00
Alex Dowad c36b9e93fa Remove unneeded prototype for spl_array_get_iterator 2020-04-23 10:05:21 +02:00
Alex Dowad 03ad54af96 Remove unused 'ce_get_iterator' field from spl_fixedarray_object 2020-04-23 10:05:08 +02:00
Alex Dowad 258bffca91 Remove unused 'ce_get_iterator' field from spl_heap_object 2020-04-23 10:05:08 +02:00
George Peter BanyardandChristoph M. Becker f91f72607b Drop unnecessary stdint and inttypes header checks
These are always available as of C99.

Closes GH-5323

Co-authored-by: "Christoph M. Becker" <cmbecker69@gmx.de>
2020-04-22 20:18:19 +02:00
Nicolas Grekas 657f756ccd Skip non-existing properties returned by __sleep() 2020-04-22 16:41:04 +02:00
Symeon Charalabides d9a96629fe Tests for the default case of the parameter of xml_parser_get_option() and xml_parser_set_option(). These cases are, as of now, not being tested. 2020-04-22 16:13:03 +02:00
Tyson Andre 630897f996 Document change to ReflectionMethod->isConstructor/isDestructor
See https://externals.io/message/109377
This prevented PHPUnit's test doubles from being created for interfaces.

The reason this changed is
https://github.com/php/php-src/pull/3846/files#diff-3a8139128d4026ce0cb0c86beba4e6b9L5549-R5605
(ReflectionMethod::isConstruct checks if the method is the zend_class_entry's
constructor, etc.)
2020-04-22 15:24:35 +02:00
Christoph M. Becker c33e5043a8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79503: Memory leak on duplicate metadata
2020-04-22 15:09:14 +02:00
Christoph M. Becker 6b2c002c41 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add additional preg_match test case
2020-04-22 15:03:26 +02:00
Dmitry Stogov 11c698f1f3 Reorder conditions 2020-04-22 15:56:54 +03:00
Christoph M. Becker 1b42f7d9bf Merge branch 'PHP-7.4'
* PHP-7.4:
  Upgrade to PCRE2 10.34
2020-04-22 14:24:57 +02:00
Nikita Popov 427cc4f496 Diagnose missing format specifier at end of string 2020-04-22 13:05:16 +02:00
Dmitry Stogov 572b799b52 Fixed register allocation constraints 2020-04-22 13:49:54 +03:00
Nikita Popov f6455c5048 Emit diagnostic on unknown printf specifier
Removing lots of bogus tests...

Closes GH-5435.
2020-04-22 12:42:24 +02:00
Nikita Popov 6ef0d470bf Remove some redundant sprintf variation tests
Add a single test that feeds different data types into the relevant
format specifiers, and remove tests that test full matrices of
different types with different formats and modifiers. We're just
interested in how the types are going to be interpreted, the behavior
of all the modifiers is going to stay the same.
2020-04-22 11:09:46 +02:00
Nikita Popov 02e5539637 printf: Unify error case
There were a couple of places using efree() on result, which works,
but is very fishy. Unify error handling with goto.
2020-04-22 10:18:03 +02:00
Nikita Popov 30a5f3da99 printf: Report error if missing padding character 2020-04-22 10:14:30 +02:00
George Peter Banyard 0b99017516 Fix error message in ext/socket 2020-04-22 00:50:32 +02:00
George Peter Banyard 7ff8eaa545 Promote warnings to Errors in sockets's extension. 2020-04-21 20:41:26 +02:00
Nikita Popov 2aa661887f Remove redundant vfprintf/vsprintf variation tests
These duplicate vprintf() variation tests. While it's useful to
test the vfprintf() and vsprintf() variants of the function, the
main formatting machinery is shared between them, and it makes
little sense to repeat the full set of format tests for all of
them.
2020-04-21 18:26:59 +02:00
Nikita Popov 40ceafc7f2 Fix number of required parameters in printf
If n$ references are involved, the maximum argnum referenced may
not the one at the end. Store it explicitly.
2020-04-21 17:01:47 +02:00
Dmitry Stogov 94fba02621 Reuse registers allocated for parent trace in side traces 2020-04-21 17:34:31 +03:00
Dmitry Stogov 333a28ed58 Register allocation is useless if JIT just calls standarad VM handlers 2020-04-21 14:56:56 +03:00
Nikita Popov 292085f336 Generate zend_builtin_functions FEs from stubs 2020-04-21 12:23:56 +02:00
Dmitry Stogov 832cfa15eb Removed old TODO 2020-04-21 12:07:36 +03:00
Nikita Popov 370c00e9cf Add crude memory limit to tracked alloc
Check whether the requested allocation size exceeds limit (rather
than the cumulative size).

This is useful to prevent allocations triggering OOM during fuzzing.
2020-04-21 10:44:15 +02:00
Nikita Popov fa4bdf1cda Make gen_stub parallelism safe
If PHP-Parser is not yet installed, make sure we don't try to
install it N times in parallel.
2020-04-21 10:20:51 +02:00
Symeon Charalabides d554d91ce7 Ensure hash_update_stream() always returns the same hash when $length = 0 2020-04-21 08:55:15 +02:00
Christoph M. Becker 321d9d9ae3 Fix OPcache build
`||` at the beginning of a line has special meaning for the DynAsm
preprocessor.
2020-04-20 17:40:16 +02:00
Christoph M. Becker 3d1b730c11 Fix #71417: fread() does not report zlib.inflate errors
If the zlib.inflate filter fails to decompress the stream, we raise a
notice instead of failing silently.
2020-04-20 16:49:08 +02:00
Nikita Popov 661c0ac7f3 Remove support for EBCDIC
Closes GH-5390.
2020-04-20 16:39:39 +02:00
Nikita Popov 58f9c4053e Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't rand() in test
2020-04-20 16:37:19 +02:00
Dmitry Stogov b0b43e86ae Register allocator and deoptimizer for tracing JIT. 2020-04-20 16:02:03 +03:00
Christoph M. Becker d757be640f Fix #71263: fread() does not report bzip2.decompress errors
If the bzip2.decompress filter fails to decompress the stream, we raise
a notice instead of failing silently.
2020-04-20 14:21:50 +02:00
Máté Kocsis 6111d64cda Improve a last couple of argument error messages
Closes GH-5404
2020-04-20 13:09:00 +02:00
Nikita Popov 283d37ad8f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix file name clash in touch_variation1.phpt
2020-04-20 12:07:59 +02:00
Nikita Popov 3d5db42ca5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #67369 ArrayObject serializatino drops the iterator class
2020-04-20 11:56:35 +02:00
Christoph M. Becker 193cb97a0e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79491: Search for .user.ini extends up to root dir
2020-04-20 11:00:01 +02:00
Nikita Popov ae5d7e4e96 Merge branch 'PHP-7.4'
* PHP-7.4:
  Apply doc root fix for FPM
2020-04-20 10:48:20 +02:00
Máté Kocsis 9955230312 Fix order of ZPP in ext/sqlite3 2020-04-20 10:39:09 +02:00
Máté Kocsis 4815be44db Generate function entries from stubs
Converts ext/pcntl, ext/simplexml, ext/snmp, ext/soap, ext/sqlite3.
Closes GH-5421
2020-04-20 10:38:41 +02:00
Nikita Popov 8e9bc90004 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79497: Fix php_openssl_subtract_timeval()
2020-04-20 10:26:45 +02:00
Tyson Andre cd56395d47 Speed up ZEND_SWITCH_STRING/ZEND_SWITCH_LONG for wrong type
This has the minor benefit of avoiding loading the address of the
jump table when the expression for the switch isn't a string/long.
gcc doesn't seem to optimize that.

The previous function body is the original implementation: ad8652818a

```
// Before: 0.267s, after: 0.265s
function test_switch($x) {
    for ($i = 0; $i < 10000000; $i++) {
        switch ($x) {
        case 'a':
        case 'b':
            echo "i=$i\n";
        }
    }
}
test_switch(null);
```

Closes GH-5419
2020-04-19 17:31:18 -04:00
Máté Kocsis 928b25cd6e Generate function entries from stubs for mysqli
Closes GH-5420
2020-04-19 21:56:47 +02:00
Tyson Andre 4e1219ac88 [skip ci] Fix typos in jit code comments
And in Opcache's zend_cfg.h

Closes GH-5414
2020-04-19 10:03:49 -04:00
George Peter Banyard 3b9d33dc20 [skip ci] Fix comment in Tidy autoconf file 2020-04-19 15:53:06 +02:00
Benjamin Eberlei ec88bbc4c6 Enhance test failure SH script to allow gdb, valgrind, rr as alternative modes. 2020-04-18 16:14:00 +02:00
George Peter Banyard 826a745671 Fix [-Wjump-misses-init] in generated zend_opcode.c 2020-04-18 14:52:49 +02:00
George Peter Banyard 594287a736 Fix [-Wjump-misses-init] warning in MySQL new driver extension 2020-04-18 14:52:49 +02:00
George Peter Banyard 925679b057 Fix [-Wjump-misses-init] in spl_directory.c by adding an inner scope 2020-04-18 14:52:48 +02:00
George Peter Banyard 9f8eb9d515 Fix [-Wjump-misses-init] in sockets extension 2020-04-18 14:52:48 +02:00
George Peter Banyard 2a4c81f1ee Fix [-Wjump-misses-init] in php_mbregex.c by adding an inner scope 2020-04-18 14:52:48 +02:00
Nikita Popov 08c5c69eff Remove ZEND_ACC_DTOR flag
This is only used in reflection, where doing a simple string check
is acceptable.

I'm also dropping the "dtor" printing in the reflection dump.
Dtors are just one of many magic methods, I don't think there's
a point in explicitly highlighting them, when the name is already
unambiguous.
2020-04-17 15:32:47 +02:00
Nikita Popov 7352213b38 Early return if variadic type check fails
Don't check all the remaining arguments after one check failed.
I don't think this makes an observable behavior difference,
because we already suppress duplicate exceptions in argument
type error reporting.
2020-04-17 14:24:44 +02:00
Christoph M. Becker 7574823911 Enable JIT for AppVeyor CI
This is not supposed to bring any test performance optimization, but
allows us to test basic JIT functionality on Windows.
2020-04-17 14:17:14 +02:00
Dmitry Stogov 1a5a6d72a1 Merge branch 'PHP-7.4'
* PHP-7.4:
  zend_timeout() may access EX(opline)
2020-04-17 14:56:18 +03:00
Christoph M. Becker a1eaaa692e Fix #79475: [JIT] func_get_args() assertion violation
`func_get_args()` may return `zend_empty_array`, which has refcount 2
to enforce separation.   We have to cater to that during type inference
so that the optimization in the JIT macro `SEPARATE_ARRAY` doesn't
prevent the separation.
2020-04-17 09:53:23 +02:00
Máté Kocsis 7a260a4a1c Revert unintended test change 2020-04-16 18:56:23 +02:00
Gabriel Caruso add8c15a31 Align magic methods' camelCase with documentation
Closes GH-5398
2020-04-16 13:53:13 +02:00
Dmitry Stogov ea0110f0de Improve registers reuse 2020-04-16 14:35:51 +03:00
George Peter Banyard 850feffac0 Add S390X architecture as a Travis job
This gives us a way to compile and test a big endian architecture.

Closes GH-5382.
2020-04-16 12:20:50 +02:00
Nikita Popov 810c5c74e6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #79336
2020-04-16 12:18:50 +02:00
Nikita Popov 00013401ff Allow using prototypes when optimizing arg passing
Closes GH-5193.
2020-04-16 12:15:19 +02:00
Christoph M. Becker bd7a52c9b2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move test to its folder
2020-04-16 11:57:54 +02:00
Nikita Popov a866ef88ed Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix MySQL local infile / attr handling on big endian systems
2020-04-16 11:23:11 +02:00
Gabriel Caruso b10b73eb86 Fix magic method name 2020-04-16 10:39:25 +02:00
Gabriel Caruso 75a58ba522 Improve error messages for magic methods by appending method's class
Closes GH-5397.
2020-04-16 10:34:58 +02:00
vibhutisawant 481caf17bc Fix Bug #79431 Various compiler warnings on Big endian architecture with GCC 5.4.0
Fix [-Werror=maybe-uninitialized] compilation warnings on big endian system

Closes GH-5373
2020-04-15 23:30:06 +02:00
Nikita Popov dd163d05ff Remove OP_RANGE_EX distinction
Only leave OP_RANGE macros, which always have the "EX" behavior.

This was already done for most other macros before, but these
were missed. This helps avoid mistakes by using the wrong macro.
2020-04-15 13:00:36 +02:00
Dmitry Stogov 99084262c3 Use proper macro 2020-04-15 13:09:55 +03:00
Dmitry Stogov 782dc8d73b Removed unused parameter 2020-04-15 13:08:09 +03:00
Nikita Popov fd5dc55759 Force short_open_tag=0 in run-tests.php
Make sure we don't accidentially add tests depending on short tags.
2020-04-15 11:27:03 +02:00
Nikita Popov 5e8be710ca Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix directory clash in tempnam_variation4 test
2020-04-15 11:25:18 +02:00
Nikita Popov 72512418d5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79477
2020-04-15 11:22:05 +02:00
Nikita Popov d68dfaf05e Remove return value from llist apply functions
Unlike the hash apply functions, these do not return int.
2020-04-15 11:01:12 +02:00
Nikita Popov 9043563775 Make zend_list_free return void
And assert that the refcount is zero. This function should only
be used internally as the resource destructor.
2020-04-15 11:01:12 +02:00
Nikita Popov e15409b43c Adjust zend_write_func signature
Make it return size_t instead of int, to line up with actual
implementation.
2020-04-15 11:01:12 +02:00
Nikita Popov 7643cf1996 More precise ifunc resolver return type
Fixes -Wattribute-alias warning.
2020-04-15 11:01:12 +02:00
Nikita Popov fb718ccc7e Suppress SIG_ERR cast warnings
By casting to void*. I don't want to deal with this right now.
2020-04-15 11:01:12 +02:00
Nikita Popov 2d517f68fb Fix function signature mismatches in GMP
This is fairly annoying. Add adapter functions for cases where
we are discarding a return value.

Some of the issues are legitimate in that we were previously
truncating some unsigned long return values to int implicitly,
though I doubt it makes a difference in practice.

This fixes -Wcast-function-type warnings.
2020-04-15 11:01:12 +02:00
Nikita Popov 4d5ad3fb24 Fix PHP_HAVALUpdate signature
Fixes a -Wcast-function-type warning.
2020-04-15 11:01:12 +02:00
Nikita Popov 53e07bac79 Fix function libxml free error signature
Fixes a -Wcast-function-type warning.
2020-04-15 09:58:19 +02:00
Remi Collet 8e5df6092d fix test using short_tag 2020-04-15 09:26:55 +02:00
Remi Collet ed179c2ef4 workaround typo in system libgd 2.3.0 2020-04-15 09:07:21 +02:00
George Peter Banyard 1c334db4c8 Add -Wextra compiler warnings and exclude the trigger happy ones
The compile warnings which are explicitly suppressed are:
 * -Wno-implicit-fallthrough
 * -Wno-unused-parameter
 * -Wno-sign-compare
 * -Wno-clobbered, only with GCC

Closes GH-5151
2020-04-14 22:22:35 +02:00
George Peter Banyard a2a6c7f227 Add -Wno-type-limits compiler flag to Sodium extension
This may happen on 32bits
2020-04-14 22:22:33 +02:00
George Peter Banyard 13938342f8 Add -Wno-ignored-qualifiers compiler flag to Tidy extension.
This is an issue in the provided library and needs to be fixed upstream.
2020-04-14 22:22:33 +02:00
Dmitry Stogov ed1ad33ba4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79472: ext/ffi/tests/040.phpt TC fails on Big endian arch
2020-04-14 20:38:42 +03:00
Christoph M. Becker e88169e3bf Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing CVE
2020-04-14 18:20:58 +02:00
Nikita Popov 110e6e4f95 Make gen_stub.php compatible with PHP 7.1 again
Not worth bumping requirements over this...
2020-04-14 17:55:27 +02:00
Nikita Popov 177c455f04 Fix test after callback name change 2020-04-14 17:50:54 +02:00
Alex Dowad 907bf786f1 Remove XFAIL from tests for 'bug' 48770
Bug 48770 was opened due to conflicting expectations about the behavior of:

    call_user_func_array(array($this, 'parent::methodName'), array($arg1,$arg2))

The one reporting the 'bug' seemed to think that since the method name was prefixed with
`parent::`, it should call the method in the superclass of the *class where this code appears*.
However, `$this` might be an instance of a subclass. If so, then it is quite reasonable that
`call_user_func_array` will call the method as defined in the superclass of *the receiver*.

So the 'bug' is not really a bug. Therefore, there is no need for an XFAIL in the tests. They
should just pass.

Amend tests to reflect the actual expected behavior of `call_user_func_array`, not what the
person who reported bug 48770 thought it should be.

Closes GH-5386.
2020-04-14 17:41:52 +02:00
Nikita Popov 7a185b5d0a Fix filter_(var|input)_array default 2020-04-14 17:41:01 +02:00
George Peter Banyard af63050071 Remove XFAIL section of a passing COM test
Closes GH-5297
2020-04-14 17:31:06 +02:00
Nikita Popov 4fb705a03d Add zend_string_concat2 API 2020-04-14 17:18:05 +02:00
Sara Golemon 489a51bff0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79468
  NEWS
2020-04-14 11:14:04 -04:00
Guillaume Charifi adea221b1a Improve socket cmsg space handling.
This should also fix the null pointer arithmetic warning on MacOS as we don't depend on whack code written by Apple.

Closes GH-5387
2020-04-14 17:10:21 +02:00
Nikita Popov 4a935bc2c9 Always use __invoke callable name for objects
The callable name is provided also if it's not callable, in which
case it's basically "what it would be if it were callable", which
is ClassName::__invoke. The current behavior of casting the object
to string makes very little sense as this will just throw an
exception for most objects.
2020-04-14 17:02:47 +02:00
Nikita Popov bac5137e4e Add zend_create_member_string() API
This is a recurring pattern.
2020-04-14 16:52:13 +02:00
Nikita Popov d0006b5fac Use UNKNOWN default for socket_connect()
Specifying the port is mandatory for INET sockets.
2020-04-14 16:09:01 +02:00
Nikita Popov b9b2e8ddde Fix socket_write() default value 2020-04-14 16:08:55 +02:00
Nikita Popov e9bdbce53f Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't leak peername if accept fails
2020-04-14 16:08:43 +02:00
George Peter Banyard 04ab4d09be Add Intl resource bundle files for big-endian architecture.
Little and Big endian files have their own designated folder.
Both use the ASCII charset family.
We may want to add a big-endian/EBCDIC charset family resource bundle in the future.

The build script is currently left untouched as it seems to mostly be for Windows.
2020-04-14 15:30:01 +02:00
Máté Kocsis 1f48feebb9 Improve some TypeError and ValueError messages
Closes GH-5377
2020-04-14 14:38:45 +02:00
Dmitry Stogov 11c5c78401 Added missed '~' 2020-04-14 15:37:20 +03:00
Christoph M. Becker 6e21932521 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test cases
2020-04-14 14:01:00 +02:00
Máté Kocsis f00bcfbb7d Generate method entries for ext/intl
Closes GH-5370
2020-04-14 13:39:00 +02:00
Nikita Popov ae1364c350 Increase timeout on ubsan/asan job
This one occasionally runs for more than 2:30 hours.
2020-04-14 12:52:24 +02:00
Nikita Popov 56d30bb35a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79468
2020-04-14 12:02:22 +02:00
Máté Kocsis 1c469adb8b Remove PDO::dbh_constructor() 2020-04-14 11:49:02 +02:00
Máté Kocsis c6485535c2 Generate method entries from stubs for curl, ffi, pdo, phar
Closes GH-5375
2020-04-14 11:49:02 +02:00
Máté Kocsis c5fb4f0794 Generate function entries from stubs for a couple of extensions
Migrates ext/standard, ext/tidy, ext/tokenizer,
ext/xml, ext/xml_reader, and ext/xml_writer. Closes GH-5381.
2020-04-14 11:49:02 +02:00
Alex Dowad 80598f1250 Syntax errors caused by unclosed {, [, ( mention specific location
Aside from a few very specific syntax errors for which detailed exceptions are
thrown, generally PHP just emits the default error messages generated by bison on syntax
error. These messages are very uninformative; they just say "Unexpected ... at line ...".

This is most problematic with constructs which can span an arbitrary number of lines, such
as blocks of code delimited by { }, 'if' conditions delimited by ( ), and so on. If a closing
delimiter is missed, the block will run for the entire remainder of the source file (which
could be thousands of lines), and then at the end, a parse error will be thrown with the
dreaded words: "Unexpected end of file".

Therefore, track the positions of opening and closing delimiters and ensure that they match
up correctly. If any mismatch or missing delimiter is detected, immediately throw a parse
error which points the user to the offending line. This is best done in the *lexer* and not
in the parser.

Thanks to Nikita Popov and George Peter Banyard for suggesting improvements.

Fixes bug #79368.
Closes GH-5364.
2020-04-14 11:22:23 +02:00
Nikita Popov d4471c6aae Remove int6store()
The implementation is broken (syntactically). As it's not used
anyway, I'm just dropping it instead.
2020-04-14 10:37:37 +02:00
Christoph M. Becker 5951ff7ee5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add NEWS entries [ci skip]
2020-04-14 08:57:29 +02:00
Stanislav Malyshev d3fbdf0048 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #79465 - use unsigneds as indexes.
  Fix bug #79330 - make all execution modes consistent in rejecting \0
2020-04-13 21:09:23 -07:00
George Peter Banyard 8300458814 Fix [-Wchar-subscripts] in Hash extension
Use size_t type instead of char for string index.
Char may be unsigned on some platforms.

partial fix to bug 79431
2020-04-13 23:03:31 +02:00
George Peter Banyard 446724bcd9 Fix [-Werror=missing-braces] compiler warning
Partial fix to bug 79431
2020-04-13 23:03:31 +02:00
Máté Kocsis 1bba691ecc Generate method entries for ext/session and ext/reflection
Closes GH-5376
2020-04-13 13:04:06 +02:00
Máté Kocsis dfd0acf0d7 Generate method entries for ext/dom
Closes GH-5374
2020-04-13 00:13:11 +02:00
George Peter Banyard 422c8390a0 Fix [-Wempty-body] compiler warning in Phar extension 2020-04-12 21:10:03 +02:00
George Peter Banyard 01762e56ed Adapt assertion as mbfl_strwidth returns a size_t 2020-04-12 19:34:05 +02:00
Máté Kocsis 68a56483ea Generate method entries for ext/xsl
Closes GH-5372
2020-04-12 10:18:21 +02:00
Máté Kocsis e088836bbc Fix nullable types in PHPDoc 2020-04-12 00:25:33 +02:00
Tyson Andre 047d814704 Fix an undefined class error running gen_stub in php8
For whatever reason, php 8 would not have loaded the subsequent classes when
running `php build/gen_stub.php path/to/filename.php`.
I assume it didn't load the classes immediately because there's a possibility
the code before it would throw.
(Probably because __toString was added recently and prevents early binding)

Also, fix a typo

Closes GH-5369
2020-04-11 17:17:28 -04:00
Máté Kocsis 7b2a8a6dda Lowercase NULL to null in stubs 2020-04-11 14:13:11 +02:00
Máté Kocsis 3fe49d81f8 Generate method entries from stubs for a couple of extensions
Closes GH-5368
2020-04-11 13:28:53 +02:00
Máté Kocsis ca006e54e3 Add missing visibility modifiers in stubs 2020-04-11 10:23:51 +02:00
Máté Kocsis 1d05771a70 Add support for generating method entries from stubs
Closes GH-5363
2020-04-11 09:15:14 +02:00
Máté Kocsis fe9860c2b0 Improve the default value format in incompatible signature error messages
Closes GH-5361
2020-04-10 22:50:33 +02:00
Máté Kocsis 4aa137c6a6 Fix the default value of the $length parameter of grapheme_substr() 2020-04-10 18:17:18 +02:00
Máté Kocsis ce3b49a8e8 Fix default value of the $class_name parameter of mysqli_fetch_object() 2020-04-10 18:17:18 +02:00
Máté Kocsis 7a72e1cc7a Fix the default value of the $flags parameter of mysqli_begin_transaction() 2020-04-10 18:17:18 +02:00
Máté Kocsis 481c8c2958 Add missing parameter to the stub of mysqli_real_connect 2020-04-10 18:17:18 +02:00
George Peter Banyard 3eba187b15 Refactor and remove dead code in mb_ereg(i)_replace
We do not support the 'e' option anymore.
Merged together code which would emit an error if this option is present.
This also makes it clearer that the whole branch in the replacement section supporting this option is never hit, thus removed.
2020-04-10 17:56:05 +02:00
Máté Kocsis beff93f60d Fix the default parameter values of stream_socket_client()
$timeout and $flags were mixed up
2020-04-10 17:17:12 +02:00
Máté KocsisandChristoph M. Becker 5868aced2e Fix the default parameter values of session_set_save_handler()
Co-Authored-By: Christoph M. Becker <cmbecker69@gmx.de>
2020-04-10 17:07:26 +02:00
Dmitry Stogov 0a408be0d2 Separate zend_jit_dump_lifetime_interval() function 2020-04-10 16:10:19 +03:00
Dmitry Stogov d3dda1e0f1 Fixed overflow handling 2020-04-10 14:42:26 +03:00
Dmitry Stogov 66f2ebe448 Register allocator refactoring 2020-04-09 19:31:18 +03:00
Nikita Popov fcc6da3e42 Mark $time argument of touch() as UNKNOWN as well
For some reason I thought that passing 0 is same as current time,
but that's not the case.
2020-04-09 16:54:42 +02:00
Nikita Popov c10f30fdf9 Mark spl_autoload_register function arg as UNKNOWN
Not passing any parameters to this function has magic behavior.
2020-04-09 16:54:40 +02:00
Nikita Popov 8a5b9cbc9f Fix mysqli_get_client_info() stub
The dummy link argument is not nullable.
2020-04-09 16:54:39 +02:00
Nikita Popov 636c827aa2 Mark fgets() argument as UNKNOWN
If no value is passed, this reads as much as necessary, not 1024
bytes.
2020-04-09 16:22:34 +02:00
Christoph M. Becker 62e8dcbc48 Change parameter default to always available value
`SIGTERM` is only defined in ext/pcntl, and as such never available on
Windows.  Moving the constant to ext/standard does not make much sense,
because that parameter is actually unused on Windows.  Therefore, we
use the magic number `15` instead, what is also done in the PHP manual.
2020-04-09 16:15:47 +02:00
Nikita Popov 87ba975e31 Make touch() $atime parameter UNKNOWN
The actual default here is $time, not 0.
2020-04-09 16:11:17 +02:00
Nikita Popov 258c4dfdb2 Mark rand/mt_rand args as UNKNOWN
The second argument should be mt_getrandmax(), not PHP_INT_MAX.
Additionally this function only accepts either zero or two arguments,
so err on the side of being conservative and mark both UNKNOWN.
2020-04-09 16:10:56 +02:00
Nikita Popov 1dcb559664 Mark array_walk $userdata arg as UNKNOWN
It makes a difference whether this arg is not passed or is null.
2020-04-09 16:10:39 +02:00
Nikita Popov b3f3a80f9c Make stream_socket_enable_crypto() session stream nullable 2020-04-09 16:10:33 +02:00
Nikita Popov 217dfc0832 Accept null context in stream_socket_(client|server) 2020-04-09 16:10:27 +02:00
Nikita Popov 2d1bf6970d Add Z_PARAM_RESOURCE_OR_NULL()
As a more explicit alternative to Z_PARAM_RESOURCE_EX(, 1, 0).
2020-04-09 15:39:11 +02:00
Nikita Popov d030ddb2cd Export the zend_string_concat3() API 2020-04-09 15:06:53 +02:00
Nikita Popov 696ae335e3 Export API for fetching internal func default
Make this functionality available outside reflection.
2020-04-09 14:55:55 +02:00
Christoph M. Becker 175e5ed4bf Fix typo (UNKOWN -> UNKNOWN) 2020-04-09 14:06:11 +02:00
George Peter Banyard 12ec7a2730 Convert if blocks to assertions and adapt stubs accordingly 2020-04-09 13:50:37 +02:00
George Peter Banyard 73455778d4 Cache MBFL encoding for Oniguruma regex functions.
Closes GH-5355
2020-04-09 13:48:55 +02:00
Dmitry Stogov 41c2b275f7 cleanup 2020-04-09 14:33:29 +03:00
Dmitry Stogov ba64b3fd41 Don't get number of passed arguments from "fake" INIT frames 2020-04-09 13:38:40 +03:00
Christoph M. Becker e6458d67cf Fix #79462: method_exists and property_exists incoherent behavior
Both functions are closely related, so should behave the same for wrong
input types, i.e. both should throw a TypeError.
2020-04-09 11:38:47 +02:00
Nikita Popov 12324364f7 Add test to make sure internal param default eval doesn't error 2020-04-09 11:22:55 +02:00
Nikita Popov 8ba6a833de Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78434
2020-04-09 10:35:50 +02:00
Máté KocsisandNikita Popov 3709e74b5e Store default parameter values of internal functions in arg info
Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal functions.

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2020-04-08 18:37:51 +02:00
Nikita Popov b0d8f012f9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add php_cli_server_connect() helper
2020-04-08 17:11:50 +02:00
Nikita Popov 5293c6d6d4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make mysqli_poll test more deterministic
2020-04-08 16:38:18 +02:00
Nikita Popov 3ea94ed78e Fix typo in GD stub 2020-04-08 12:03:14 +02:00
Nikita Popov 38d93262a0 Update mb_strrpos() stub
We no longer accept the encoding as 3rd param, so we can make this
a proper int argument.
2020-04-08 12:03:14 +02:00
Dmitry Stogov 3042b2b201 Dump information about trace side exits 2020-04-08 12:39:24 +03:00
Christoph M. Becker 6a67067c21 Merge branch 'PHP-7.4'
* PHP-7.4:
  Relax overly strict test expectation
2020-04-08 11:35:28 +02:00
Christoph M. Becker d4f9d54f1a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix memory leak introduced by fixing bug #78221
2020-04-08 10:37:28 +02:00
Nikita Popov cb338d8c4e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test
2020-04-08 09:41:26 +02:00
Dmitry Stogov f915b5516c Update stack type, only if necessary 2020-04-08 10:34:24 +03:00
Dmitry Stogov a172e056a0 Fixed TYPE/INFO mismatch 2020-04-08 00:27:19 +03:00
George Peter Banyard 1e8459d626 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Went to fast and forgot to update tests"
  Revert "Fix Bug #79448 0 is a valid Unicode codepoint, but mb_substitute_character(0) fails"
2020-04-07 22:49:17 +02:00
Dmitry Stogov 4e69970fb7 cleanup 2020-04-07 21:37:10 +03:00
Dmitry Stogov cff7703a61 Revert "cleanup" (wrong commit)
This reverts commit 5db5f71f28.
2020-04-07 21:34:18 +03:00
Dmitry Stogov 5db5f71f28 cleanup 2020-04-07 21:30:47 +03:00
Nikita Popov 07e739a2d5 Remove most uses of _default_get_name()
Instead fetch the name from the respective structure. The only
place where this is still used is ReflectionClassConst,
as zend_class_const does not store the name.
2020-04-07 16:42:40 +02:00
Nikita Popov ab73d142c9 Eliminate uses of _default_load_name()
Instead fetch the name from the function/class/property,
as appropriate. This makes us independent of the property,
and eliminates error conditions related to it.
2020-04-07 16:25:44 +02:00
Nikita Popov 425c6f5815 Optimize internal name fetching in reflection
Directly fetch the name property, instead of construction the
properties hash table and performing a lookup in it. This is both
slow and wastes a lot of memory.
2020-04-07 16:10:19 +02:00
Nikita Popov c81cf1c7af Assert that arginfo parameter name is present 2020-04-07 16:05:33 +02:00
Christoph M. Becker 68139dbdd8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78221: DOMNode::normalize() doesn't remove empty text nodes
2020-04-07 13:09:10 +02:00
Dmitry Stogov 864b1cc3ef Free room for information about register allocation at astact stack and at trace_exit_info. Implement simple deoptimizer. 2020-04-07 12:01:48 +03:00
Dmitry Stogov 4006c0008e Save CPU regesters on side exit for deoptimization 2020-04-06 23:48:20 +03:00
Dmitry Stogov c4bdf41862 Minor register allocator refactoring 2020-04-06 16:17:02 +03:00
Christoph M. Becker 9809713844 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #69264: __debugInfo() ignored while extending SPL classes
2020-04-06 12:04:12 +02:00
Nikita Popov 3e5fdef96e Inline a ZEND_NUM_ARGS() variable 2020-04-06 11:41:44 +02:00
Christoph M. Becker 9cb32640af Clean up constructor handling in com_dotnet
We substitute the construction magic with standard constructors, move
the ZPP checks to the beginning of the ctors, and also let the function
entries be generated from the stubs.
2020-04-06 10:53:45 +02:00
Máté Kocsis 50765075db Improve some ValueError messages
Closes GH-5340
2020-04-06 10:41:01 +02:00
Máté Kocsis 21cfa03f17 Generate function entries for another batch of extensions
Closes GH-5352
2020-04-05 21:15:30 +02:00
Máté Kocsis c0cbab6002 Add missing stub for xmlrpc_get_type() 2020-04-05 21:10:31 +02:00
George Peter Banyard 1b6f61e7c4 Promote invalid case mode to ValueError in mb_case_converter
Add assertions to check the return value is not NULL as this indicates a bug.
Add identical assertion to mb_strtoupper and mb_strtolower.
This means these functions can't return false anymore, ammend stubs accordingly.
2020-04-05 03:33:08 +02:00
George Peter Banyard a34e73de5a mb_scrub() can't return false anymore
Also drop the intermediary function which was only used here
2020-04-05 01:44:39 +02:00
George Peter Banyard 07062e1fc5 Promote some warnings to ValueError in mbstring
Promoted warnings are:
 * Empty encoding lists
 * Unknown language
 * Start and Width out of bound
2020-04-05 01:44:38 +02:00
George Peter Banyard bd52b62ae0 Convert some if blocks to assertions 2020-04-05 01:44:38 +02:00
Máté Kocsis 5322de1ba8 Generate functions entries from stubs for another set of extensions
Closes GH-5351
2020-04-05 00:59:44 +02:00
Máté Kocsis d5bbb28f7d Move variable declaration closer to its usage 2020-04-05 00:03:08 +02:00
Máté Kocsis 610815c0ce Improve gen_stub.php
Closes GH-5350
Add support for generating deprecated function entries, as well as forward declaration
of function aliases.
2020-04-04 23:52:33 +02:00
Máté Kocsis 7c3078737f Generate function entries from stubs for a couple of extensions
Closes GH-5347
2020-04-04 20:41:48 +02:00
Máté Kocsis a43bc33fb2 Annotate function aliases in stubs 2020-04-04 13:03:16 +02:00
George Peter Banyard fc5a88f614 Merge branch 'PHP-7.4' 2020-04-03 22:23:03 +02:00
George Peter Banyard 9cb9c53f1f Merge branch 'PHP-7.4' 2020-04-03 21:30:35 +02:00
Nikita Popov 02a685ead3 Fix stub for zend_terminate_string() 2020-04-03 18:21:40 +02:00
Nikita Popov 2bcc4ab8f4 Verify that all stubs have a return type 2020-04-03 17:59:30 +02:00
Nikita Popov d2c92d7fd3 Stubs: Store information per-class
We'll need this if we want to generate method entries.
2020-04-03 16:20:47 +02:00
Nikita Popov 2bfcd8825c Remove now unnecessary PHP_FUNCTION() declarations 2020-04-03 15:41:41 +02:00
Nikita Popov 51bc6233b2 Generate function entries from stubs
If @generate-function-entries is specified in the stub file,
also generate function entries for the extension.

Currently limited to free functions only.
2020-04-03 15:41:41 +02:00
Máté Kocsis 305b17e85f Do not include the same stub multiple times
Closes GH-5322
2020-04-03 14:23:54 +02:00
Christoph M. Becker 17d4e66204 Fix #68690: Hypothetical off-by-one condition
We fix this, even though `filter->cache == jisx0213_u2_tbl_len` can
never be true here.
2020-04-03 14:20:37 +02:00
George Peter Banyard fa3b8c75fb Promote unknown encoding throws in encoding array/string list
For the string list we emit still emit a warning by comparing arg_num to 0

Closes GH-5337
2020-04-03 10:58:46 +02:00
Remi Collet 75b01c797e add some output when generating arginfo 2020-04-03 10:48:20 +02:00
Remi Collet e11d3b1690 Move gen_stub.php to build directory and install it so phpize can take care of it, and thus extension can use it as it is already in Makefile 2020-04-03 10:48:20 +02:00
Nikita Popov 6e1ff5f951 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix incorrect free for last_message
2020-04-03 10:06:52 +02:00
George Peter Banyard 656046873c Refactor mb_substr_count()
Promote empty needle warning to ValueError
Convert if branch into an assertion as if mbfl_substr_count fails this now implies a bug
Thus mb_substr_count() can only return int now, fix stubs accordingly
2020-04-02 22:40:00 +02:00
George Peter Banyard 165fde9a37 Convert if branch to assertion in mb_strlen
This operation should never fail, therefore it's converted to an assertion.
Thus this mb_strlen() can now only return int, fix stubs accordingly
2020-04-02 22:40:00 +02:00
George Peter Banyard d44ee9112f Promote mb_str_split warning to ValueError
Also add a TODO about documenting this funcion on PHP.net
Convert some checks to assertions as if they don't hold something went wrong during memory allocation
Due to these changes this function cannot return false anymore, fix stubs accordingly
2020-04-02 22:40:00 +02:00
George Peter Banyard f488b5d0f9 Merge mb_strstr() variants under a common implementation
This reduces heavy ducplicate code
2020-04-02 22:40:00 +02:00
George Peter Banyard 737871341f Improve code flow
These nested if-else blocks are unnecessary since we return early.
2020-04-02 22:40:00 +02:00
George Peter Banyard 577de174de Use ZEND_NUM_ARGS() macro instead of custom variable
Also why on earth would someone do this?
2020-04-02 22:40:00 +02:00
George Peter Banyard 4cd3d7b166 Promote empty string warning to ValueError in mb_ord() 2020-04-02 22:39:59 +02:00
Nikita Popov cf3528bd44 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79434
2020-04-02 16:34:51 +02:00
Matteo Beccati 66ec60cb45 Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip fpm tests not designed to be run as root
  Allow fpm tests to be run with long socket path
2020-04-02 16:17:24 +02:00
Remi Collet 319c21b1f6 news / UPGRADING for zip 1.19.0 2020-04-02 14:58:13 +02:00
Remi Collet 2dc8d39bae - add ZipArchive::EM_UNKNOWN constant - add ZipArchive::EM_TRAD_PKWARE constant - cleanup hack for libzip 1.3.1 (have only exist for a few days) - add ZipArchive::isCompressionMethodSupported() method (libzip 1.7.0) - add ZipArchive::isEncryptionMethodSupported() method (libzip 1.7.0) - bump version to 1.19.0-dev 2020-04-02 14:52:05 +02:00
Christoph M. Becker 6983ae751c Fix #47983: mixed LF and CRLF line endings in mail()
Email headers are supposed to be separated with CRLF.  Period.
2020-04-02 14:51:14 +02:00
Christoph M. Becker 737f7dd8f6 Prevent imap mail tests from borking instead of skipping
As of commit e49593a[1], run-tests.php is rather picky regarding the
output of SKIPIF sections, so we have to suppress warnings for failing
imap_open().

[1] <http://git.php.net/?p=php-src.git;a=commit;h=e49593a7c3159a5673ce74b4e5133f1264dc313f>
2020-04-02 12:51:22 +02:00
Remi Collet 59e0674185 use a better setter for zip_error_t 2020-04-02 12:26:44 +02:00
Nikita Popov 184fdac7c2 Remove <default> prefix from reflection dump
This really doesn't add anything, and only makes for confusing
terminology. Only marking properties as dynamic is sufficient.
2020-04-02 11:25:41 +02:00
Nikita Popov 083b0c38a0 Display property default value in reflection dumps 2020-04-02 11:21:48 +02:00
Nikita Popov b5991d3382 Show property type in reflection export 2020-04-02 11:05:04 +02:00
Nikita Popov 5430a466ff Avoid control flow warning 2020-04-02 10:54:32 +02:00
Christoph M. Becker 919adcf161 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable error diagnostic for check_default_conf_path.phpt
2020-04-01 19:21:46 +02:00
Nikita Popov 3a7c716249 Remove unnecessary check in runtime_compile_time_binary_operands.phpt
Now that operator errors are detected more accurately, we no longer
have any cases where we throw a compile-time error instead of a
run-time exception, so we can drop this check now.
2020-04-01 14:49:52 +02:00
Nikita Popov f1dd8b2af0 Make division by zero error check more accurate
For division (rather than modulus) we should check the double
value, otherwise the result might be zero after integer truncation,
but not zero as a floating point value.
2020-04-01 14:47:21 +02:00
Nikita Popov 1ed132e2e5 Unify checks for binary operator errors for ct eval
Move everything into one function and share it with opcache.
This fixes some discrepancies.
2020-04-01 14:42:58 +02:00
Nikita Popov 56b18d478e Don't convert binop operand types in opcache
This may produce different behavior if operator overloading is
involved, and may change the error message.

If there's strong interest, this could be done in the DFA pass
with available type information. It does not look particularly
practically useful to me though.
2020-04-01 14:39:41 +02:00
Nikita Popov 2d8f9f34dd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix literal compaction collision between string and double
2020-04-01 14:23:07 +02:00
Nikita Popov cdaf35033d Improve "unsupported operands" error
By mentioning the operand types. We can do that now, as the
original operand types now remain available.

Closes GH-5330.
2020-04-01 11:26:43 +02:00
Nikita Popov 9c0afc859c Remove op_func from TRY_BINARY_OP1 macro
And move the operator overloading helpers into zend_operators.c,
there's no reason for them to be in the header.
2020-04-01 10:15:03 +02:00
Christoph M. Becker f973b712b2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add NEWS entryc [ci skip]
2020-04-01 09:29:07 +02:00
George Peter Banyard a54ee6e591 Merge branch 'PHP-7.4' 2020-04-01 04:55:35 +02:00
George Peter Banyard 229dff9f08 Promote unsupported encoding warnings to ValueError 2020-04-01 00:54:36 +02:00
George Peter Banyard 21227dc1f1 Use php_mb_get_encoding instead of mbfl_name2encoding to get encoding
This reduces the number of places where the error message template is used.
Also promote the mb_check_encoding() warning to ValueError and add a test to cover the behaviour.
2020-03-31 23:39:39 +02:00
Nikita Popov 11f0e1d1cb Move encoding fetching out of php_mb_convert_encoding() 2020-03-31 21:47:55 +02:00
Nikita Popov 857fe616fa Remove unnecesary check in php_mb_check_encoding()
The caller makes sure that this is not NULL.
2020-03-31 21:02:00 +02:00
Nikita Popov f182309e87 Refactor operator implementations
Instead of looping, use straight-line code with the following
layout:

1. Try to apply the base operation on the dereferenced operands.
2. Try overloaded object operations.
3. Try to convert operands to number, else error out.
4. Apply the base operation on the converted operands.

This makes the code easier to reason about and fixes some edge-case
bugs:

1. We should only try invoking operator overloading once prior to
   type conversion. Previously it was invoked both before and after
   type conversion.
2. We should not modify any values if an exception is thrown.
   Previously we sometimes modified the LHS of a compound assignment
   operator.
3. If conversion of the first operand fails, we no longer try to
   convert the second operand. I think the previous behavior here
   was fine as well, but this still seems a more typical.

This will also make some followup changes I have in mind simpler.
2020-03-31 20:49:39 +02:00
George Peter Banyard daf45f68d2 Use explicit helper 2020-03-31 20:27:10 +02:00
George Peter Banyard affc5a024a Encoding argument is always MBREX(current_mbctype) 2020-03-31 20:27:10 +02:00
Nikita Popov 51f9cc6269 Add additional operator exception handling tests
These show that we may lose the old value of the LHS of a compound
assignment operator in some cases.
2020-03-31 18:36:42 +02:00
Nikita Popov 944b10e3d3 Remove unused argument form convert_object_to_type() 2020-03-31 17:31:35 +02:00
Máté Kocsis b6229fbca2 Display nullability in type error messages for internal functions
Closes GH-5327
2020-03-31 16:55:36 +02:00
Nikita Popov 0509a1e066 Clean up silent/noisy flag in convert_to_number 2020-03-31 16:53:03 +02:00
George Peter Banyard 90eeca2531 Convert some unknown encoding warnings to ValueErrors in ext/mbstring
Promotes only the warnings where the encoding comes only from a string.
Functions which accept an array of encodings will be fixed at a later stage.

Closes GH-5317
2020-03-31 16:34:18 +02:00
George Peter Banyard 55a3e5b99e Promote some warnings to Errors in Zend basic functions
Closes GH-5325
2020-03-31 16:32:58 +02:00
Derick Rethans 9ec7265291 Merge branch 'PHP-7.4' 2020-03-31 15:01:07 +01:00
Nikita Popov 8fd7f02ea4 Make cast_object handler required
Avoid subtle differences in behavior depending on whether the
handler is absent or returns FAILURE.

If you previously set cast_object to NULL, create a handler that
always returns FAILURE instead.
2020-03-31 14:37:49 +02:00
Máté Kocsis 36935e42ea Improve undefined variable error messages
Closes GH-5312
2020-03-31 13:02:32 +02:00
Nikita Popov 6bf483a94a Clarify SimpleXML comparison logic 2020-03-31 12:48:57 +02:00
Nikita Popov fb5bfcb75b Add a ZEND_UNCOMPARABLE value
To explicitly indicate that objects are uncomparable. For now
this has no functional difference from the usual 1 return value,
but makes intent clearer.
2020-03-31 12:36:48 +02:00
Nikita Popov bef4b2e4e9 Report object cast failures internally
Make cast_object return FAILURE for casts to int/float, rather than
throwing a notice and returning SUCCESS. Instead move the emission
of the notice to the code invoking cast_object. This will allow us
to customize the behavior per call-site.

This change is written to be NFC, and the code in
zend_std_compare_objects() should illustrate the current behavior
doesn't make a lot of sense.
2020-03-31 12:07:25 +02:00
Nikita Popov 78d3af4529 Make sure php_get_internal_encoding() returns non-empty
Even if default_charset is set to "", we should still return
"UTF-8" as the default value here. Setting default_charset to ""
suppresses the header emission, but shouldn't change anything
about our encoding defaults.
2020-03-31 11:06:15 +02:00
Nikita Popov 3ca08ee764 Make sure mbstring.internal_encoding deprecation is always thrown
It was not thrown if the setting was specified via -d at least.
2020-03-31 10:47:23 +02:00
Christoph M. Becker 47918bdd33 Merge branch 'PHP-7.4'
* PHP-7.4:
  Next is 7.3.18
2020-03-31 10:26:01 +02:00
Christoph M. Becker 12ca4fe65d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79413: session_create_id() fails for active sessions
2020-03-31 08:41:08 +02:00
George Peter Banyard 457380cae7 Drop wchar header check as always defined since C95 2020-03-31 00:14:56 +02:00
George Peter Banyard aa47543cb4 Fix format for tm member objects as they are stored as integers
Closes GH-5326
2020-03-30 17:09:49 +02:00
Nikita Popov fbe19a6eb7 Clarify that return throws 2020-03-30 16:27:38 +02:00
Nikita Popov 8a2ce27bba mb_detect_order(): Use proper array|string argument 2020-03-30 16:26:28 +02:00
Nikita Popov 500230fc85 Remove persistent arg from parse_encoding_array()
It is always zero.
2020-03-30 16:17:35 +02:00
Nikita Popov b02b3539e7 mb_check_encoding(): Make var a proper array|string arg 2020-03-30 16:15:12 +02:00
Nikita Popov 50d07ff28c mb_detect_encoding(): Use proper array|string parameter
Needed to add support for nullabiltiy in some places.
2020-03-30 16:15:12 +02:00
Tyson Andre 47ddd95836 Do constant evaluation for str_contains in opcache
Both arguments must be strings.
str_contains deliberately does not emit a warning for an empty needle.

Closes GH-5324
2020-03-30 09:54:38 -04:00
Nikita Popov bb6523693c mb_convert_variables(): Make $from an array|string argument 2020-03-30 15:51:04 +02:00
Nikita Popov 0d24422749 mb_convert_encoding(): Make $input a proper array|string arg 2020-03-30 15:41:55 +02:00
Nikita Popov f24f6cbab9 mb_convert_encoding(): Make $from_encodings a proper array|string arg
Switching to FastZPP, as we don't support this in normal zpp.
2020-03-30 15:39:33 +02:00
Michael Voříšek 2c82b832f6 Add test to make sure that (self::class)::method() is not forwarding LSB
Related with Bug #79419.

Closes GH-5310.
2020-03-30 15:26:19 +02:00
Nikita Popov 7cea789cfc Parse mb_convert_encoding() encodings only once
Instead of re-parsing them for every converted value. Also reuse
the generic parse_array() helper.
2020-03-30 14:54:15 +02:00
Nikita Popov cd5a29b820 Properly report unknown encoding in encoding lists
And clean up the related array and list parsing code.
2020-03-30 14:46:59 +02:00
Dmitry Stogov 44390beb42 cleanup 2020-03-30 14:27:01 +03:00
Nikita Popov ed850f2723 Move encoding fetching outside php_mb_stripos() 2020-03-30 12:29:11 +02:00
Nikita Popov 295895342f Remove unnecessary NULL check
This is a required zpp parameter, it cannot be null.
2020-03-30 12:24:39 +02:00
Dmitry Stogov 4c9ee6a8ca Initialize variable numbers 2020-03-30 12:50:19 +03:00
Nikita Popov 44c70b881b Disable Symfony test on PHP 8
Symfony is currently has an expected incompatibility with PHP 8:

Fatal error: Declaration of Symfony\Component\HttpClient\Response\MockResponse::schedule(Symfony\Component\HttpClient\Response\MockResponse $response, array &$runningResponses): void must be compatible with Symfony\Component\HttpClient\Response\ResponseTrait::schedule(Symfony\Component\HttpClient\Response\ResponseTrait $response, array &$runningResponses): void in /home/vsts/work/1/s/symfony/src/Symfony/Component/HttpClient/Response/MockResponse.php on line 135

Disable the job until this is fixed.
2020-03-30 10:58:33 +02:00
Nikita Popov f9e4c71506 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't check directory nlink in stat tests
2020-03-30 10:54:34 +02:00
Nikita Popov a34480ec82 SCCP: Optimize strpos with empty needle
This is no longer special cases in PHP 8.
2020-03-30 10:37:22 +02:00
Christoph M. Becker 6b6f0d63f3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #74940: DateTimeZone loose comparison always true
2020-03-30 09:18:20 +02:00
Christoph M. Becker 2a1d7bd802 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79427: Integer Overflow in shmop_open()
2020-03-30 08:58:45 +02:00
Jakub Zelenka 477efe935b Merge branch 'PHP-7.4' 2020-03-29 20:21:24 +01:00
Remi Collet 5fa17fbf94 Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS
  Fix #79424 ext/zip: don't use gl_pathc after call to globfree
2020-03-29 14:24:12 +02:00
Dmitry Stogov 099ffc2169 BIND_GLOBAL and BIND_STATIC don't use value of the first operand 2020-03-27 15:20:21 +03:00
Christoph M. Becker 9e77d5a9da Fix #76999: mb_regex_set_options() return current options
When setting new options, `mb_regex_set_options()` is supposed to
return the *previous* options.
2020-03-27 10:34:16 +01:00
Dmitry Stogov 150df5b17c Removed useless variable 2020-03-27 12:24:15 +03:00
Christoph M. Becker b0b593504d Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing 'skip' to bug79332.phpt skip message
2020-03-26 23:17:37 +01:00
Nikita Popov e8e09b60b4 Remove rand_r implementation
We already use our own mt13397 implementation nowadays, so we no
longer need this shim.
2020-03-26 11:49:27 +01:00
Nikita Popov 97cb81ead5 Remove HAVE_REALPATH checks
We do not actually use realpath(), but a custom implementation.
Make sure the realpath() function is always available.

Closes GH-5290.
2020-03-26 11:46:00 +01:00
Nikita Popov 5a09b9fb0f Add PhpToken class
RFC: https://wiki.php.net/rfc/token_as_object

Relative to the RFC, this also adds a __toString() method,
as discussed on list.

Closes GH-5176.
2020-03-26 11:09:18 +01:00
Nikita Popov f74e30c07c Check abstract method signatures coming from traits
RFC: https://wiki.php.net/rfc/abstract_trait_method_validation

Closes GH-5068.
2020-03-26 10:07:22 +01:00
Dmitry Stogov beaacbc1b3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Explicitly declare the char as signed in zend_ffi_val.
2020-03-26 10:29:34 +03:00
George Peter Banyard 69b7d011d8 Explicitly declare the char as signed in zend_ffi_val.
This causes issues down the line as char are unsigned on some platforms,
e.g. ARM and cause a [-Wtype-limits] warning to be emitted.
2020-03-26 10:22:34 +03:00
Christoph M. Becker 556573b290 Fix php_exec() output length
If trailing whitespace is stripped, we have to propagate the change of
`bufl` back to php_exec().
2020-03-26 01:09:50 +01:00
George Peter Banyard 3e6667d338 Fix -Wtype-limits warning by using correct type declaration in JIT trace
Namely int as that is the type of 'definition'

Closes GH-5299
2020-03-26 00:01:59 +01:00
Dmitry Stogov 51a305d2a4 Separate zend_jit_var_supports_reg() and cleanup 2020-03-25 23:09:32 +03:00
Dmitry Stogov 40fa6284eb Fixed incorrect "TSSA start" headers 2020-03-25 23:07:21 +03:00
Dmitry Stogov 5a05fef2af Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).
2020-03-25 17:38:08 +03:00
Máté Kocsis 782f7e2ad8 Fix #75958 Return void instead of true 2020-03-25 15:04:33 +01:00
Máté Kocsis 2e8ccce5dc Add stubs for SplDoublyLinkedList
Closes GH-5293
2020-03-25 15:01:24 +01:00
Dmitry Stogov b7c6244dfc Add new line before basic-block labels (except for the first BB0) 2020-03-25 14:26:42 +03:00
Dmitry Stogov 0684b9fcdc Always print numeric opline numbers 2020-03-25 14:26:42 +03:00
Nikita Popov a524785d5d Clean up php_exec() implementation a bit 2020-03-25 11:11:30 +01:00
Nikita Popov d6a19bae51 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #79410 (system() swallows last chunk if it is exactly 4095 bytes without newline)
2020-03-25 10:51:32 +01:00
Dmitry Stogov ce8202f996 Rename "var" to "stack". This is an abstract stack that holds TSSA variable numbers. 2020-03-25 10:49:01 +03:00
Dmitry Stogov af3142daaf Make SSA dump format controlled by opcache.jit_debug more readable (always print opcode number).
This doesn't affect dumps controlled by opcache.opt_debug_level.
2020-03-24 22:44:11 +03:00
Máté Kocsis c5fe1a192d Improve error messages of ext/hash
Closes GH-5275
2020-03-24 10:23:11 +01:00
Máté Kocsis d5871e26ad Promote warnings to exceptions in ext/hash 2020-03-24 10:22:29 +01:00
Máté Kocsis a42e8e8ec4 Add stubs for SPL iterators
Closes GH-5286
2020-03-24 08:02:27 +01:00
Máté Kocsis 01b266aac4 Improve error messages of various extensions
Closes GH-5278
2020-03-23 18:59:04 +01:00
Máté Kocsis d7b73de8c9 Improve error messages of ext/reflection
Closes GH-5277
2020-03-23 17:23:45 +01:00
Nikita Popov 568592f1e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test file
2020-03-23 17:14:42 +01:00
Nikita Popov dcbdcf87c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Handle NULL caller_call_opline
2020-03-23 17:12:55 +01:00
Christoph M. Becker 3b26a3868e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix leak on Windows as well
2020-03-23 16:33:26 +01:00
Christoph M. Becker d963b78523 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test for Windows
2020-03-23 16:26:19 +01:00
Christoph M. Becker 324337a3b1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79200: Some iconv functions cut Windows-1258
2020-03-23 14:31:16 +01:00
Nikita Popov 816a1fd4af Don't use quiet zpp in RecursiveIteratorIterator ctor
Don't be a special snowflake, generate a standard TypeError here.
2020-03-23 14:22:51 +01:00
Christoph M. Becker bdb63a3068 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79393: Null coalescing operator failing with SplFixedArray
2020-03-23 13:59:22 +01:00
Máté Kocsis fe88d23914 Fix ZPP of SplFileInfo::openFile() 2020-03-23 13:37:51 +01:00
Máté Kocsis 66fc55642c Add stubs for SplFileInfo et al.
Closes GH-5287
2020-03-23 13:36:17 +01:00
Nikita Popov e9c2dec720 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix RSA memory leak in mysqlnd auth
2020-03-23 12:01:15 +01:00
Nikita Popov e88c7bf5c7 Fix signed integer overflow UB in dasm
Should hopefully fix the ubsan and community builds.
2020-03-23 11:12:42 +01:00
Nikita Popov 6766b5f9bc Fix pointer UB in dynasm
Looks like newer GCC versions started warning about this.
2020-03-23 11:03:56 +01:00
Nikita Popov adb7297b0f Minor cleanup in spl_direcotry
* Rename variable for clarity
* Reduce section with replaced error handling
* Drop comment code line
2020-03-23 10:02:29 +01:00
ZoDream 28afaef6fa Repair ext_skel.php to create the basic framework for a PHP extension
Copy the arginfo stubs file, and drop the %EXTNAME%_ to make things line up.

Closes GH-5289.
2020-03-23 09:25:06 +01:00
Tyson Andre 26b9780d02 Fix compilation error on mac with -Wshift-negative-value
Fix for mac OS build error seen in ccc49ead68
when shifting -1 (max argument count?)

```
ext/opcache/jit/zend_jit_trace.c:1668:2:
error: shifting a negative signed value is undefined
[-Werror,-Wshift-negative-value]
        TRACE_FRAME_INIT(frame, op_array, 0, -1);
```

Closes GH-5284.
2020-03-23 09:24:26 +01:00
Tyson Andre dcca0391e2 Skip ftruncate_bug76422 if disk_free_space() <= 4GB
Followup to https://github.com/php/php-src/pull/5043

In the middle of running this test with TESTS=-j9,
run-tests.php stopped the test suite because the partition started
with 3.5GB of free disk space and new test files couldn't be created.

Reclaiming the disk space of that file also took a while.

Closes GH-5283
2020-03-21 12:01:28 -04:00
Dmitry Stogov 4b8171e087 Add tracing JIT guards for INTI_FCALL_BY_NAME and INIT_NS_FCALL_BY_NAME 2020-03-20 16:59:02 +03:00
Remi Collet d12b4c3c24 bump zip version 2020-03-20 14:08:57 +01:00
Christoph M. Becker 7defa7e883 Note that active => true has to be kept for $QA_RELEASES
Otherwise the bug tracker and test failure reporting will not work as
intended (and maybe there are even more issues).
2020-03-20 14:00:11 +01:00
Dmitry Stogov 3715475381 JIT for INIT_NS_FCALL_BY_NAME 2020-03-20 15:36:40 +03:00
Remi Collet 57042ac23e add missing test 2020-03-20 12:13:25 +01:00
Remi Collet db62ad18f3 fix test, thanks Indrek 2020-03-20 12:13:25 +01:00
Dmitry Stogov 166bc64caf CAST to the same type mat be JIT-ed as QM_ASSIGN 2020-03-20 13:31:55 +03:00
Remi Collet a4d12f46d1 ZipArchive::open(): Using empty file as ZipArchive is deprecated 2020-03-20 11:27:42 +01:00
Remi Collet 217ff8132e Merge branch 'PHP-7.4'
* PHP-7.4:
  unneeded after fix
  NEWS
  NEWS
  Fix Bug #79296 ZipArchive::open fails on empty file
2020-03-20 11:19:04 +01:00
Dmitry Stogov 517c30b05f JIT for FETCH_THIS 2020-03-20 12:33:41 +03:00
Derick Rethans 9c6bda3027 Merge branch 'PHP-7.4' 2020-03-20 09:31:46 +00:00
Christoph M. Becker 825384c478 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix potential test conflict
2020-03-20 08:57:43 +01:00
Dmitry Stogov ccc49ead68 Change jit_trace_stack_frame layout 2020-03-20 10:54:45 +03:00
Dmitry Stogov 7283dbba27 ZEND_MAKE_REF can't throw 2020-03-20 01:37:27 +03:00
Dmitry Stogov 9232af91fd JIT for STRLEN 2020-03-20 01:23:36 +03:00
Dmitry Stogov 3958d5bdc5 JIT for ECHO and variable string operands 2020-03-20 01:01:33 +03:00
Dmitry Stogov 282265bccd JIT for SEND_FUNC_ARG 2020-03-19 23:59:11 +03:00
Christoph M. Becker 8ea143a943 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79396: DateTime hour incorrect during DST jump forward
2020-03-19 08:53:46 +01:00
Dmitry Stogov 8e879b9f44 JIT for ZEND_CHECK_FUNC_ARG 2020-03-18 23:56:03 +03:00
Máté Kocsis bb6f374048 Improve argument error messages in ext/standard
Closes GH-5198
2020-03-18 19:56:10 +01:00
Dmitry Stogov c2f1c36e30 Eliminate run-time check 2020-03-18 21:19:31 +03:00
Christoph M. Becker ddf38fd764 Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve FFI test suite for Windows
2020-03-18 17:01:30 +01:00
Nikita Popov 22a2817d3c Improve build instructions in README
Provide enough information to get a build going without hunting
down packages.

If someone wants to add info for macos or other distros, that
would probably be nice as well.
2020-03-18 16:29:09 +01:00
Nikita Popov f768a5563f Merge branch 'PHP-7.4'
* PHP-7.4:
  Clarify session.cookie_samesite="None"
2020-03-18 16:00:23 +01:00
Dmitry Stogov 12cdab2d76 Improved JIT for BIND_GLOBAL 2020-03-18 17:20:40 +03:00
Nikita Popov df79277de3 Revert "Fetch for read in nested property assignments"
This reverts commit bb43a3822e.

After thinking about this a bit more, this is now going to be
a complete solution for the "readonly properties" case, for example:

    unset($foo->readOnly->bar);

should also be legal and

    $foo->readOnly['bar'] = 42;

should also be legal if $foo->readOnly is not an array but an
ArrayAccess object.

I think it may be better to distinguish better on the BP_VAR flag
level. Reverting for now.
2020-03-18 14:54:43 +01:00
Remi Collet a5f136b855 bump zp to 1.18.1 + doc 2020-03-18 14:09:50 +01:00
Remi Collet 3b22e10535 Fix bug #77960 add compr. /encr. options for ZipArchive::addGlob and ZipArchive::addPattern
options parameter now accepts:
- comp_method
- comp_flags
- enc_method
- enc_password
2020-03-18 14:05:09 +01:00
Nikita Popov bb43a3822e Fetch for read in nested property assignments
$a->b->c = 'd';

is now compiled the same way as

    $b = $a->b;
    $b->c = 'd';

That is, we perform a read fetch on $a->b, rather than a write
fetch.

This is possible, because PHP 8 removed auto-vivification support
for objects, so $a->b->c = 'd' may no longer modify $a->b proper
(i.e. not counting interior mutability of the object).

Closes GH-5250.
2020-03-18 12:08:06 +01:00
Nikita Popov e957a8cd92 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make bug52820.phpt more robust
  Explicitly start mysql
  Use "set -e" in some pipeline steps
2020-03-18 11:46:37 +01:00
Nikita Popov 70ef2f3817 Use different scratch register in read_obj
We already use r0 to hold the zval.
2020-03-18 11:44:34 +01:00
Nikita Popov 69937870da Explicitly pass scratch register to SAVE_VALID_OPLINE 2020-03-18 11:44:25 +01:00
Dmitry Stogov f767807986 Result of ASSIGN may be different from the assigned value when LHS is a typed reference 2020-03-18 01:40:41 +03:00
Dmitry Stogov a8e8c40ad4 Use zend_fetch_arg_info_type() 2020-03-17 18:10:27 +03:00
Dmitry Stogov 29bef78e9f Use _const_op_type() for converting constant into type info 2020-03-17 17:55:34 +03:00
Nikita Popov 1ba6e66c46 Improve type inference
After thinking about this a bit more, the code here was too
conservative. We know that everything but an object is going to
throw, so it's sufficient to restrict the type to MAY_BE_OBJECT.

The change in the test is weird but not incorrect, because it
operates on empty inferred types, in which case the code must be
dead (which it is). We should probably add a more explicit removal
of code working on empty types.
2020-03-17 15:41:47 +01:00
Nikita Popov 41a86a72c4 Clean up a few more places 2020-03-17 15:23:52 +01:00
Nikita Popov 023039fbfc Remove object auto-vivification leftovers in type-inference
undef/null/false no longer get promoted to object in PHP 8.

In fact, we may drop the SSA var defs outside RC inference mode now.
2020-03-17 14:54:11 +01:00
Christoph M. BeckerandNikita Popov 66d8d0c7d7 Drop support for iconv without proper errno setting
It is hard to impossible to work around iconv() implementations which
do not properly set errno according to POSIX.  We therefore do no
longer allow to build against such iconv() implementations.

Co-Authored-By: Nikita Popov <nikita.ppv@googlemail.com>
2020-03-17 14:02:29 +01:00
Dmitry Stogov 4b89d96489 Improved JIT for ZEND_ASSIGN 2020-03-17 15:45:54 +03:00
Nikita Popov b1a082da25 Fix typos 2020-03-17 12:59:37 +01:00
Remi Collet d81182461a Merge branch 'PHP-7.4'
* PHP-7.4:
  bump verison to 7.2.30-dev
2020-03-17 11:29:20 +01:00
Christoph M. Becker 8e7df57e30 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix NEWS
2020-03-17 11:15:48 +01:00
Christoph M. Becker de0f9d0815 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update NEWS
  Fix test
  Fix bug #79329 - get_headers should not accept \0
  Fixed bug #79282
2020-03-17 11:00:48 +01:00
Christoph M. Becker ea7cf2eb67 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update NEWS
  Fix test
  Fix bug #79329 - get_headers should not accept \0
  Fixed bug #79282
  Fix #79283: Segfault in libmagic patch contains a buffer overflow
  Fix #79371: mb_strtolower (UTF-32LE): stack-buffer-overflow
  [ci skip] Update NEWS
  Fix test
  Fix bug #79329 - get_headers should not accept \0
  Fixed bug #79282
  Fix #79371: mb_strtolower (UTF-32LE): stack-buffer-overflow
2020-03-17 10:33:28 +01:00
Stanislav Malyshev 03bf4edbe8 Fix test 2020-03-16 22:42:15 -07:00
Stanislav Malyshev 2bc92a0cf7 Fix bug #79329 - get_headers should not accept \0 2020-03-16 22:42:15 -07:00
Stanislav Malyshev 9ed82b1f7b Fixed bug #79282 2020-03-16 22:42:15 -07:00
Christoph M. Becker 7702b693b5 Fix #79283: Segfault in libmagic patch contains a buffer overflow
To solve this, we properly calculate the required string length upfront
instead of allocating an oversized string (`len * 4 + 4`).
2020-03-16 22:42:15 -07:00
Christoph M. Becker ebdaeb8572 Fix #79371: mb_strtolower (UTF-32LE): stack-buffer-overflow
We make sure that negative values are properly compared.
2020-03-16 22:42:15 -07:00
Dmitry Stogov 902e19ddf3 Store informaton about class 2020-03-17 00:25:47 +03:00
Dmitry Stogov 7069b55ba4 Fixed recording classes of object references 2020-03-16 23:08:07 +03:00
Nikita Popov 4565a7f269 Fix assertion when (real) is used
And bring back a test for it...
2020-03-16 18:37:01 +01:00
Nikita Popov 6a0b59d085 Slightly deduplicate code
This code is the same in both branches, extract it.
2020-03-16 17:07:27 +01:00
Nikita Popov eb7e1df228 Remove "safe" argument from ZVAL_PTR_DTOR
This is no longer used
2020-03-16 17:07:27 +01:00
Nikita Popov cfd79841f4 Fix typos 2020-03-16 17:07:27 +01:00
Nikita Popov 3723985058 Merge EX variants of INFO macros 2020-03-16 13:02:16 +01:00
Nikita Popov d35ce5d661 Merge EX variants of RANGE macros
Only need to create the ssa_op variable in range inference...
2020-03-16 12:36:03 +01:00
Nikita Popov 44b3971b85 Merge zend_may_throw(_ex)
Explicitly pass ssa_op in the places that don't do so yet.
2020-03-16 12:24:40 +01:00
Nikita Popov 5c65562ce4 Remove unnecessary cast 2020-03-16 12:24:40 +01:00
Máté Kocsis c3554eb2c4 Fix ZPP of MultipleIterator::detachIterator() and MultipleIterator::containsIterator() 2020-03-16 12:05:40 +01:00
Máté Kocsis 04a44e1f08 Add stubs for SplObjectStorage and MultipleIterator
Closes GH-5267
2020-03-16 12:05:23 +01:00
Máté Kocsis 0ae8a3f3d6 Add stubs for SplHeap and SplPriorityQueue
Closes GH-5266
2020-03-16 12:04:56 +01:00
Philipp Tanlak 1668ad7cb1 Add str_contains() function
RFC: https://wiki.php.net/rfc/str_contains

Closes GH-5179.
2020-03-16 11:05:26 +01:00
Nikita Popov 934e60b594 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't specify ports in socket_export_stream-4.phpt
2020-03-16 10:32:39 +01:00
Christoph M. Becker 4c0ddd094a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in php.ini comment
2020-03-15 15:02:10 +01:00
Dmitry Stogov 9a8f735c57 Emit warning about type narrowing for tracing JIT as well 2020-03-14 01:29:46 +03:00
Dmitry Stogov 29bf7902b3 Fixed RC inference for ZEND_ASSIGN_STATIC_PROP and removed useless checks during RC inference 2020-03-14 01:17:45 +03:00
Dmitry Stogov 4bf2d09ede Tracing JIT (it doesn't support register allocation yet)
Use opcache.jit=1255 to swith it on (the third digit 5 really matters)
Use opcache.jit_debug=0xff001 to see how it works and what code it generates
2020-03-13 22:11:07 +03:00
Nikita Popov d15012d5e8 Accept const op_array in zend_build_call_map 2020-03-13 16:25:28 +01:00
Nikita Popov 9e89f91341 Add assertions for DIM_W/RW uses
The result should be used only once and on the directly next opline,
otherwise it may not be safe. Add some assertions to that effect.
2020-03-13 13:11:42 +01:00
Nikita Popov 9ab2cb923e Also remove dead arguments 2020-03-13 12:45:02 +01:00
Nikita Popov b979e03159 Remove dead type narrowing code
Rename handle_type_narrowing() to clarify what it does, and
remove dead code for resetting dependent vars.
2020-03-13 12:27:49 +01:00
Dmitry Stogov 78b64bd4ed Merge branch 'PHP-7.4'
* PHP-7.4:
  Check asserts early
  identation fix
  Call global code of preloaded script in global context
  Avoid "Anonymous class wasn't preloaded" error by lazely loading of not preloaded part of a preloaded script
2020-03-13 11:42:07 +03:00
George Peter Banyard c9db32271a Remove deprecated (real) cast
Closes GH-5220
2020-03-12 15:40:21 +01:00
Nikita Popov 0fdffc1807 Update Unicode tables to 13.0.0 2020-03-12 11:29:51 +01:00
Christoph M. Becker b612559a5b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79199: curl_copy_handle() memory leak
2020-03-12 11:28:39 +01:00
Christoph M. Becker 208e348982 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #61597: SXE properties may lack attributes and content
2020-03-12 10:57:14 +01:00
Dmitry Stogov 10726588b1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Export FFI::__BIGGEST_ALIGNMENT__
2020-03-12 11:45:05 +03:00
Dmitry Stogov c774ca8d80 Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow to fetch function address
2020-03-12 11:41:12 +03:00
Xinchen Hui 583c7a4cbb Merge branch 'PHP-7.4' 2020-03-12 15:45:07 +08:00
Christoph M. Becker f078bca729 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78210: Invalid pointer address
2020-03-11 11:32:46 +01:00
Christoph M. Becker dcbf020f76 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79364: When copy empty array, next key is unspecified
2020-03-11 08:57:17 +01:00
Nikita Popov f0f2493208 Merge branch 'PHP-7.4'
* PHP-7.4:
  Check for sys/auxv.h before using it.
2020-03-10 16:54:17 +01:00
Nikita Popov e8678fcb42 Fixed bug #75902
Don't special-case nested arrays/objects in str_replace(), instead
perform a string cast on them as well. For arrays, this will always
result in the usual conversion warning.

This behavior is consistent with preg_replace(). If we didn't want
to cast the array to string here, we should instead perform the
replacement recursively. Silently copying it is just confusing.
2020-03-10 16:49:17 +01:00
Nikita Popov d9219f997d Enable better trait conflict error message
I don't think there is any reason to disable this anymore,
at least all the messages generated in tests look correct and
more useful.
2020-03-10 16:19:11 +01:00
Nikita Popov fff5771ccc Require non-absolute trait method refs to be unambiguous
Currently, when writing something like

class X {
    use T1, T2 {
       func as otherFunc;
    }
    function func() {}
}

where both T1::func() and T2::func() exist, we will simply assume
that func refers to T1::func(). This is surprising, and it doesn't
really make sense that this particular method gets picked.

This commit validates that non-absolute method references are
unambiguous, i.e. refer to exactly one method. If there is
ambiguity, it is required to write T1::func as otherFunc or
similar.

Closes GH-5232.
2020-03-10 16:01:13 +01:00
Máté Kocsis d2b902f174 Add some stubs for SPL
Closes GH-5245
2020-03-10 11:41:48 +01:00
Máté Kocsis 9d0eccd980 Perform some maintenance work on the XSL extension
Added stubs, fixed some ZPP, and changed PHP_FALIASes to PHP_METHODs.
Closes GH-5241
2020-03-10 11:41:15 +01:00
Christoph M. Becker b31f73b1c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enclose INI values containing {TMP} in quotes
2020-03-09 22:53:23 +01:00
Nikita Popov d9c45d86f9 Improve type inference for COALESCE
Place a pi node on the non-null edge to remove a spurious
undef/null type.

Additionally, adjust the profitability heuristic to be more
accurate if the "other predecessor" writes to the variable.
Ideally this should not just consider the direct predecessors,
but it's sufficient for this case.

This partially addresses bug #79353 by removing the discrepancy
between ?? and ??=.
2020-03-09 16:19:48 +01:00
Nikita Popov b2f7be7214 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79357
2020-03-09 15:01:48 +01:00
Nikita Popov 191451da90 Fix bug #79358: JIT miscompile in composer 2020-03-09 12:55:14 +01:00
Máté Kocsis c6d941dc95 Regenerate the VM
Some error message changes were missed out previously.
2020-03-09 11:40:18 +01:00
Máté Kocsis f44dd16b7a Improve error message of foreach
Closes GH-5240
2020-03-09 11:29:40 +01:00
Nikita Popov c5f091e47f Remove DOM_GET_THIS macro
This macro is trivial, it's more obvious to use ZEND_THIS directly.
2020-03-09 09:56:22 +01:00
Remi Collet f5c1359f57 proper fix 2020-03-09 09:29:34 +01:00
Remi Collet ef42a7afa5 fix use after free 2020-03-09 09:19:57 +01:00
Remi Collet ed998f8a0d Fix #50678 files extracted by ZipArchive class lost their original modified time 2020-03-09 07:09:50 +01:00
Máté Kocsis 373a6d8274 Regenerate reflection stubs 2020-03-07 20:26:06 +01:00
Christoph M. Becker 3d435624ef Merge branch 'PHP-7.4'
* PHP-7.4:
  PHP-7.4 is now 7.4.5-dev
2020-03-06 17:53:30 +01:00
Christoph M. Becker ef32de34da Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test on Windows if privileges are insufficient
2020-03-06 16:41:34 +01:00
Nikita Popov 941a3b6ccd Remove unnecessary uses of CHECK_SILENT
If no error is passed, it is always silent.
2020-03-06 16:36:45 +01:00
Nikita Popov 9c6e206bce Remove NO_ACCESS flag for zend_is_callable()
We may add support for fake_scope if necessary.
2020-03-06 16:31:03 +01:00
Nikita Popov 7309c23644 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix community job
2020-03-06 11:43:58 +01:00
Nikita Popov d95f465efa Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for bug #63816
2020-03-06 11:17:06 +01:00
Nikita Popov e9ae581f02 Fixed bug #62609: Allow implementing Traversable in abstract class
Master only, as this depends on fixes to calling order of
interface implementation handlers.
2020-03-06 11:12:43 +01:00
Remi Collet 125724cf58 [ci skip] fix for #72374 is no more a BC break 2020-03-06 10:29:16 +01:00
Remi Collet be14d4e135 better fix for #72374 2020-03-06 10:27:29 +01:00
Christoph M. Becker f3c24ec265 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #75673: SplStack::unserialize() behavior
2020-03-06 09:12:03 +01:00
Benjamin Eberlei 0d913f9acf Fix another memory leak in dom_zvals_to_fragment. 2020-03-06 00:03:13 +01:00
Christoph M. Becker b8100a150a [ci skip] Tweeks to release-process.md
As discussed with Derick and Remi.
2020-03-05 18:06:10 +01:00
Remi Collet e786e9c83c upgrade information about changs in Zip 2020-03-05 14:03:20 +01:00
Remi Collet 541eeace59 drop old constant with bad name, kept until now for BC 2020-03-05 13:46:34 +01:00
Remi Collet 6f53605275 - make status, statusSys properties and
ZipArchive::getStatusString() method   available after archive is closed
2020-03-05 10:57:26 +01:00
Remi Collet 32c2ae2939 NEWS 2020-03-04 15:31:38 +01:00
Remi Collet 0b21a89472 add lastId property to ZipArchive 2020-03-04 15:31:06 +01:00
Nikita Popov 33ef3d64da Use separate typedef for bucket comparison function
Avoid performing the same casting dance inside each sort compare
function.
2020-03-04 12:46:06 +01:00
Christoph M. Becker 22ec3bcebd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix intermittent test failures of windows_mb_path tests
2020-03-04 12:16:13 +01:00
Nikita Popov c05a9c3dcd Implement interfaces after all methods available
The place where interface implementation handlers is called is
currently ill-defined: If the class implements interfaces itself,
the handlers for both the parent interfaces and the new interfaces
will be called after all methods are registered (post trait use).
If the class does not implement interfaces, then the parent
interface handlers are called early during inheritance (before
methods are inherited).

This commit moves the calls to always occur after all methods are
available. For userland classes this will be post trait import,
at the time where interfaces get implemented (whether the class
itself defines additional interfaces or not). For internal classes
it will be at the end of inheritance, as internal class declarations
do not have proper finalization.

This allows us to simplify the logic for implementing the magic
Iterator / IteratorAggregate interfaces. In particularly we can
now also automatically detect whether an extension of
IteratorAggregate can safely reuse a custom get_iterator handler,
or whether it needs to switch to the userland mechanism. The
Iterator case continues to rely on ZEND_ACC_REUSE_GET_ITERATOR
for this purpose, as a wholesale replacement is not possible there.
2020-03-04 10:29:21 +01:00
Cameron Porter a527c60ede PDO_OCI: Add test of the phpinfo output 2020-03-04 10:10:05 +01:00
Remi Collet 8ea3493cb6 zip_file_replace don't need ZIP_FL_OVERWRITE 2020-03-04 09:22:29 +01:00
Nikita Popov f15f3272cf Remove empty "interface gets implemented" handlers 2020-03-03 17:06:38 +01:00
Nikita Popov 262f52d5e2 Small code cleanup
I found what the modifier code does with XOR pretty confusing.
It's just removing the PPP bits...

Also remove an outdated reference to OVERLOADED_FUNCTION.
2020-03-03 15:00:51 +01:00
Nikita Popov 2c5fcd57c0 Resolve trait alias refers to earlier
Make sure all trait method references are converted to absolute
method references in advance. This regresses one error message
that I don't think is particularly valuable.
2020-03-03 14:23:31 +01:00
Remi Collet ef03236d9d Merge branch 'PHP-7.4'
* PHP-7.4:
  this test needs json
2020-03-03 13:06:46 +01:00
Derick Rethans ec03689eb9 Merge branch 'PHP-7.4' 2020-03-03 11:29:48 +00:00
Cameron Porter a55b0abef3 oci8: Fix two tests that fail with stricter internal checks
Closes GH-5230
2020-03-03 12:13:44 +01:00
Nikita Popov aa9a3ff891 Add test for bug #69084
This is another bug fixed by the precending commit.
2020-03-03 12:10:54 +01:00
Nikita Popov 53efa1b0c6 Store aliased name of trait method
Currently, trait methods are aliased will continue to use the
original function name. In a few places in the codebase, we will
try to look up the actual method name instead. However, this does
not work if an aliased method is used indirectly
(https://bugs.php.net/bug.php?id=69180).

I think it would be better to instead actually change the method
name to the alias. This is in principle easy: We have to allow
function_name to be changed even if op array is otherwise shared
(similar to static_variables). This means we need to addref/release
the function_name separately, but I don't think there is a
performance concern here (especially as everything is usually
interned).

There is a bit of complication in opcache, where we need to make
sure that the function name is released the correct number of times
(interning may overwrite the name in the original op_array, but we
need to release it as many times as the op_array is shared).

Fixes bug #69180.
Fixes bug #74939.
Closes GH-5226.
2020-03-03 11:55:48 +01:00
Nikita Popov a7a2e9857e Fix memory leak in dom_zvals_to_fragment 2020-03-03 10:36:04 +01:00
Christoph M. Becker feef00e929 Merge branch 'PHP-7.4'
* PHP-7.4:
  Next is 7.3.17
2020-03-03 10:22:52 +01:00
Xinchen Hui 534c3438e3 Updated maintainer ranges 2020-03-03 14:26:42 +08:00
Christoph M. Becker b9c157726b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79013: Content-Length missing when posting a curlFile with curl
2020-03-02 19:12:49 +01:00
Remi Collet a6d86c9bba bump zip version + NEWS 2020-03-02 16:51:55 +01:00
Remi Collet fb8e221907 - add ZipArchive::FL_RECOMPRESS, FL_ENCRYPTED, FL_OVERWRITE, FL_LOCAL, FL_CENTRAL constants
- add optional "flags" parameter to ZipArchive::addEmptyDir, addFile and addFromString methods
- add "flags" options to ZipArchive::addGlob and addPattern methods
  keeping previous behavior having FL_OVERWRITE by default
- add ZipArchive::replaceFile() method
2020-03-02 16:48:53 +01:00
Remi Collet c932db8654 add myself as zip maintainer 2020-03-02 16:47:47 +01:00
Christoph M. Becker 3abe64f16a Merge branch 'PHP-7.4'
* PHP-7.4:
  Native Windows support for mysqlnd sha256 authentification
  Abstract over crypto operations
2020-03-02 16:33:40 +01:00
Nikita Popov 336eb48c36 Automatically implement Stringable interface 2020-03-02 15:25:33 +01:00
Nicolas Grekas 9e775db025 Define Stringable with __toString():string method 2020-03-02 15:25:32 +01:00
Christoph M. Becker c06850b9fa Merge branch 'PHP-7.4'
* PHP-7.4:
  Update libmagic.patch
2020-03-02 15:10:15 +01:00
Christoph M. Becker c987e538ac Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79333: com_print_typeinfo() leaks memory
2020-03-02 11:38:50 +01:00
Christoph M. Becker b05c7fae33 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79332: php_istreams are never freed
2020-03-02 10:48:14 +01:00
Máté Kocsis cb933d63c2 Add stubs for IntlChar
Closes GH-5217
2020-02-28 18:10:52 +01:00
Máté Kocsis 118b04bd6e Improve argument error messages in ext/sodium
Closes GH-5197
2020-02-28 18:09:39 +01:00
Benjamin Eberlei 531ea6d340 Add upgrading note regarding merge of RFC for new DOMParentNode/DOMChildNode APIs. 2020-02-28 17:35:54 +01:00
Nikita Popov 6c84ed6b18 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove generated lexer
2020-02-28 17:26:06 +01:00
Nikita Popov 0d06a63ee3 Fixed bug #77325
Make ReflectionClassConstant->class the declaring class, not the
class on which the constant was fetched. This matches the behavior
for properties and methods.
2020-02-28 17:21:19 +01:00
Nikita Popov 30c2388738 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79062
2020-02-28 17:08:27 +01:00
Benjamin Eberlei 5acd86df8e [RFC] Implement new DOM Living Standard APIs in ext/dom 2020-02-28 16:13:39 +01:00
Nikita Popov 87bc99439d Fixed bug #64592
Make ReflectionClass::getMethods() behave the same ways as
ReflectionClass::getProperties() by not including private methods
from parent classes.
2020-02-28 15:54:42 +01:00
Nikita Popov b314603f7f Update ext maintenance ranges
Also add myself as reflection maintainer.
2020-02-28 15:54:42 +01:00
Christoph M. Becker 3a74d7a725 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79311: enchant_dict_suggest() fails on big endian architecture
2020-02-28 15:46:17 +01:00
Nikita Popov bb85478bcc Merge branch 'PHP-7.4'
* PHP-7.4:
  Try to fix msvc build
2020-02-28 14:49:03 +01:00
Nikita Popov a297c4ef9e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix another flaky FPM test
2020-02-28 14:41:32 +01:00
Máté Kocsis d70e6bdcde Add stubs for UConverter
Closes GH-5218
2020-02-28 14:37:37 +01:00
Máté Kocsis 3ab75ac019 Update MySQLi function info
Closes GH-5214
2020-02-28 14:36:54 +01:00
Nikita Popov b89ba475df Merge branch 'PHP-7.4'
* PHP-7.4:
  Try to fix intermittent FPM failures
2020-02-28 13:19:53 +01:00
Nikita Popov 519a72e0b4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79252
2020-02-28 12:49:45 +01:00
Nikita Popov 06ac14f7f2 Avoid duplicate calls to interface implementation handler 2020-02-28 12:17:01 +01:00
Remi Collet 06750d75e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix test
2020-02-28 10:39:43 +01:00
Remi Collet 32e5ca234a Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS
  Fix #79315 ZipArchive::addFile doesn't honor start/length parameters
2020-02-28 10:36:34 +01:00
Remi Collet 165d38a38d Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS
  Fix #79315 ZipArchive::addFile doesn't honor start/length parameters
2020-02-28 10:29:30 +01:00
Remi Collet 3725faa3db NEWS 2020-02-28 10:24:52 +01:00
Remi Collet fb881cbdfc Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #79315 ZipArchive::addFile doesn't honor start/length parameters
2020-02-28 10:23:19 +01:00
Nikita Popov c5e8c25dda Merge branch 'PHP-7.4'
* PHP-7.4:
  Use type-checked ref assignment in UConverter
2020-02-28 10:22:11 +01:00
Remi Collet 5b2d4c0ecc Fix #79315 ZipArchive::addFile doesn't honor start/length parameters 2020-02-28 10:21:19 +01:00
George Peter Banyard 5d62f95ec7 Use {0} to initialize instead of {NULL}
Clang emits a [-Wmissing-field-initializers] when using {NULL} instead of {0}
2020-02-28 00:21:25 +01:00
Dmitry Stogov 63761d1133 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed incorrect overflow detection
2020-02-27 23:38:19 +03:00
Nikita Popov 819a872cfa Avoid more null arithmetic 2020-02-27 14:48:43 +01:00
Nikita Popov 5a90392c6a Use EX_NUM_TO_VAR() in more places
Not sure why I missed these before.
2020-02-27 13:13:24 +01:00
Nikita Popov 1949a26aac Remove more null arithmetic UB
Introduce an EX_NUM_TO_VAR macro to mirror EX_VAR_TO_NUM and
replace usages of the ZEND_CALL_VAR_NUM(NULL) pattern.
2020-02-27 12:54:48 +01:00
Christoph M. Becker 3ae04b05f5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add upgrading node regarding fix for bug #79271
2020-02-27 10:39:07 +01:00
Nikita Popov 84854a72c7 Remove mergesort implementation
php_mergesort() isn't being used for anything, and hasn't been for
a long time. Even if we wanted to use a stable sort, this isn't
the implementation we'd use...
2020-02-27 10:36:01 +01:00
Nikita Popov 0427ef91a6 Avoid null arithmetic UB in EX_VAR_TO_NUM 2020-02-27 10:30:16 +01:00
Dmitry Stogov 4786207ecc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed incorrect behavior of internal memory debugger
2020-02-27 12:28:09 +03:00
Christoph M. Becker 30d18b8ced Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #64032: mysqli reports different client_version
2020-02-27 09:40:31 +01:00
Nikita Popov a51c98e696 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for bug #60161
2020-02-26 16:48:41 +01:00
Máté Kocsis 960318ed95 Change argument error message format
Closes GH-5211
2020-02-26 15:00:08 +01:00
George Peter Banyard c7094d8926 Fix mbstring regex variable types to correspond to Oniguruma
The beginning and ending of a Oniguruma Regex are stored in a OnigRegion (which is a typedef to the Oniguruma re_registers struct) as as int* therefore change the type from size_t to int

Closes GH-5196
2020-02-26 11:24:03 +01:00
Nikita Popov b35b0142e6 Require all internal functions to have arginfo 2020-02-26 10:05:20 +01:00
Nikita Popov 8d30d5f269 Add stubs for COMPersistHelper 2020-02-26 10:00:08 +01:00
George Peter Banyard 1fdc53bc96 Remove deprecated capture_session_meta OpenSSL stream context
Closes GH-5200
2020-02-26 03:09:13 +01:00
Máté Kocsis 81fee9f29f Get rid of method mapping of BreakIterator classes 2020-02-25 23:05:24 +01:00
Máté Kocsis bcb7847139 Add stubs for Intl BreakIterator
Closes GH-5207
2020-02-25 23:05:03 +01:00
Nikita Popov d594fba3ac Reorder checks in object ref assignment
First check for IS_INDIRECT and de-indirect it directly there.
Handle the error cases later.
2020-02-25 17:30:54 +01:00
Nikita Popov b4c74c54b2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #63206: Fully support error/exception_handler stacking, even with null or inside the handler
2020-02-25 12:44:26 +01:00
Nikita Popov 98ad4d3b5b Give arginfo to SplFileInfo::_bad_state_ex()
We should really get rid of this hack though... Wow!
2020-02-25 11:18:25 +01:00
Nikita Popov 631c6e7f78 Add missing zend_test stubs 2020-02-25 11:18:15 +01:00
Tom Van Looy fabe6a310c Add ext/mysqli stubs
Closes GH-4913.
2020-02-25 11:06:46 +01:00
Nicolas Oelgart aa79a22d32 Add preg_last_error_msg() function
Provides the last PCRE error as a human-readable message, similar
to functionality existing in other extensions, such as
json_last_error_msg().

Closes GH-5185.
2020-02-25 10:26:03 +01:00
Nikita Popov bb6e2a1615 Avoid used of "named fn" in ext/standard 2020-02-25 10:21:31 +01:00
Nikita Popov 7956866ff4 Fix macro-expansion issues in ZEND_FE and friends
I noticed that we have various places where we work around macros
conflicting with PHP function names. Rather than require this,
fix our ZEND_FE etc macros to avoid pre-scan macro expansion.
This requires duplicating the ZEND_FN/ZEND_MN macros in places,
but that seems like a reasonable tradeoff.
2020-02-25 10:21:31 +01:00
Nikita Popov 16897aacce Remove unnecessary checks in breakpoint iterator
The result of Z_INTL_BREAKITERATOR_P() cannot be NULL. This type
of macro in general can never be NULL.
2020-02-25 10:06:13 +01:00
Nikita Popov a939805641 Use serialize_precision for var_dump()
var_dump() is debugging functionality, so it should print
floating-point numbers accurately. We do this by switching
to serialize_precision, which (by default) will print with
as much precision as necessary to preserve the exact value
of the float.

This also affects debug_zval_dump().

Closes GH-5172.
2020-02-25 09:51:32 +01:00
Nikita Popov c3aa9132d6 Fix argon2 test if provided by sodium 2020-02-24 21:34:37 +01:00
Nikita Popov 7fc29c9924 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable ext/sodium in CI
  Add skipif for argon2id in test
2020-02-24 12:41:49 +01:00
Nikita Popov f69bad872a Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't treat any WS as start of header
2020-02-24 10:20:49 +01:00
Nikita Popov e40b744b78 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce code duplication in HTTP header checks
2020-02-24 10:07:28 +01:00
Nikita Popov cc704f5bb6 Reduce code duplication in HTTP header checks 2020-02-24 09:58:29 +01:00
Nikita Popov ce2abdd42e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixes #79265: Improper injection of Host header when using fopen for http requests
2020-02-24 09:51:55 +01:00
Christoph M. Becker 6c7306f45d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79299: com_print_typeinfo prints duplicate variables
2020-02-23 23:35:33 +01:00
Jakub Zelenka 736b1ab200 Merge branch 'PHP-7.4' 2020-02-23 19:15:05 +00:00
Jakub Zelenka ee0579350f Merge branch 'PHP-7.4' 2020-02-23 18:32:20 +00:00
George Peter Banyard 0aad7999e7 Update Travis build config
The sudo key is deprecated and doesn't do anything anymore.

Adding the "os" key with default value "linux" which was assumed to the build config.
2020-02-23 03:27:05 +01:00
George Peter Banyard 6e40ec7de9 Second go at fixing [-Wmissing-field-initializers] compiler warning in PDO
By 0 initializing the sub structs
2020-02-22 01:01:07 +01:00
Nikita Popov 1892def3a8 Add rand() to ext/standard stub 2020-02-21 16:27:59 +01:00
Christoph M. Becker 3e1ac7e968 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79294: ::columnType() may fail after SQLite3Stmt::reset()
2020-02-21 13:39:05 +01:00
George Peter Banyard 363d87f256 Fix [-Wmissing-field-initializers] compiler warning in mbstring
Add missing NULL pointer for mbfl_convert_vtbl struct.
2020-02-21 13:19:09 +01:00
Nikita Popov a87bfdfd25 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't use asm arithmetic under msan
2020-02-21 11:58:59 +01:00
Christoph M. Becker a21cdb88ac Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for bug #78569
2020-02-21 10:34:27 +01:00
Nikita Popov d1d87dcd6f Merge branch 'PHP-7.4'
* PHP-7.4:
  Update Ubuntu version on Azure
2020-02-21 10:12:45 +01:00
Nikita Popov ac51a5f02a Make SPL doubly linked list smaller
Store rc in data u2. This drops element size from 40 to 32 bytes.
2020-02-21 09:54:18 +01:00
Máté Kocsis f031735489 Update UPGRADING
[skip ci]
2020-02-20 11:13:24 +01:00
Christoph M. Becker 802391fa3f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix NEWS [ci skip]
2020-02-20 10:59:05 +01:00
Máté Kocsis c231bbb852 Remove restore_include_path()
Closes GH-5189
2020-02-20 09:11:36 +01:00
Bishop Bettini fb57ae9084 Improve comment on RFC 1867 filename handling
It was pointed out on the internals ML[1] that the basename comment
around RFC 1867 file handling was confusing. The comment seemed to
say that the basename handling was only necessary because of some
esoteric bug in Windows IE. In fact that comment applied to earlier
versions of the code and was, therefore, misleading. The comment
needs to clear that basename is required per RFC 7578[2].

[1]:https://externals.io/message/108624
[2]:https://tools.ietf.org/html/rfc7578
2020-02-19 11:30:32 -05:00
Máté Kocsis 4f89211810 Remove the deprecated reflection export methods
Closes GH-5188
2020-02-19 13:19:37 +01:00
Nikita Popov 318fe06042 Create memory stream in exif fuzzer
At least one segfault observed because temp file creation failed.
Switch to using a memory stream, which should be more robust, and
more efficient for that matter.
2020-02-19 10:24:12 +01:00
Nikita Popov 28a30f7afa Handle static return type in AST printer
Fixes OSS-Fuzz #20782.
2020-02-19 09:45:41 +01:00
Máté Kocsis 736b22dc0b Add stubs for aliases
Closes GH-5187
2020-02-18 21:10:36 +01:00
Nikita Popov 172010a08d Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't use VLA in mysqlnd auth
2020-02-18 16:18:50 +01:00
Nikita Popov 7a062cf9cd Handle EXIF offsets in a principled manner
exif_process_IFD_TAG() currently accepts a dir_entry, offset_base
and IFDlength. However, it's very hard to follow how these values
are related to each other and the addressable memory region. As we
add additional bounds check, this gets further confused.

One of the basic cases is where dir_entry is in
[offset_base, offset_base+IFDlength), in which case the memory
[dir_entry, offset_base+IFDlength) is valid, but the memory
[offset_base, dir_entry) is not necessarily valid. I wasn't able
to understand what exactly is valid if dir_entry is outside
[offset_base, offset_base+IFDlength)

This patch changes everything to use a struct that separately stores
offset_base and the valid memory region and adds helpers to fetch
offsets and check that pointers are in-bounds.

Closes GH-5068.
2020-02-18 15:17:38 +01:00
Nikita Popov 3b08f53c97 Deprecate required param after optional
As an exception, we allow "Type $foo = null" to occur before a
required parameter, because this pattern was used as a replacement
for nullable types in PHP versions older than 7.1.

Closes GH-5067.
2020-02-18 14:35:58 +01:00
Christoph M. Becker 9d79e510d5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove extra tab in NEWS [ci skip]
2020-02-18 11:12:08 +01:00
Remi Collet e845b1908b Merge branch 'PHP-7.4'
* PHP-7.4:
  bump version to 7.2.29
2020-02-18 11:01:21 +01:00
Nikita Popov abfdfc9ff8 Add return types to FFI methods
The FFI class is final, so we can use proper return types.
2020-02-18 10:28:43 +01:00
Nikita Popov 328903ca36 Add proper return types to final phar methods
As these are final, we can add return types to them.
2020-02-18 10:20:21 +01:00
Nikita Popov 541f8b7640 Remove mysqli reflection tests 2020-02-18 10:08:03 +01:00
Nikita Popov 540f052242 Fix zpp in mysqli_warning::next()
This only exists as a method, so using zend_parse_method_parameters
doesn't make sense. Also make sure that zpp is always called, not
only conditionally.
2020-02-18 10:01:17 +01:00
Christoph M. Becker b5d8fc0153 [ci skip] I still help to maintain these extensions
or at least planning to.
2020-02-18 09:47:58 +01:00
Christoph M. Becker 9ca449e0a8 Make quoting of cmd execution functions consistent
While the `$command` passed to `proc_open()` had to be wrapped in
double-quotes manually, that was implicitly done for all other
program execution functions.  This could easily introduce bugs and
even security issues when switching from one to another program
execution function.

Furthermore we ensure that the additional quotes are always
unwrapped regardless of what is passed as `$command` by passing
the `/s` flag to cmd.exe.  As it was, `shell_exec('path with
spaces/program.exe')` did execute program.exe, but adding an
argument (`shell_exec('path with spaces/program.exe -h)`) failed
to execute program.exe, because cmd.exe stripped the additional
quotes.

While these changes obviously can cause BC breaks, we feel that in
the long run the benefits of having consistent behavior for all
program execution functions outweighs the drawbacks of potentially
breaking some code now.
2020-02-17 23:17:17 +01:00
Christoph M. Becker 72737b0660 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79038: PDOStatement::nextRowset() leaks column values
2020-02-17 22:55:16 +01:00
Christoph M. Becker 4804dc2b20 Rename php_dom_create_interator() to php_dom_create_iterator()
Thus fixing an obvious typo.
2020-02-17 22:49:59 +01:00
Christoph M. Becker 742bb334fc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix NEWS [ci skip]
2020-02-17 19:37:24 +01:00
Christoph M. Becker 18537af1d2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS [ci skip]
2020-02-17 19:25:36 +01:00
Christoph M. Becker d8f8b99375 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix # 79171: heap-buffer-overflow in phar_extract_file
  Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions
  Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
  Mark bug76348.phpt as online test
  Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions
  Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
2020-02-17 19:09:35 +01:00
Christoph M. Becker 7d6384d1f7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Create a new console for each test worker on Windows
2020-02-17 18:54:32 +01:00
Máté Kocsis ac0853eb26 Make type error messages more consistent
Closes GH-5092
2020-02-17 14:22:17 +01:00
Nikita Popov 72bd55902d Improve generated names for anonymous classes
In order of preference, the generated name will be:

    new class extends ParentClass {};
    // -> ParentClass@anonymous
    new class implements FirstInterface, SecondInterface {};
    // -> FirstInterface@anonymous
    new class {};
    // -> class@anonymous

This is intended to display a more useful class name in error messages
and stack traces, and thus make debugging easier.

Closes GH-5153.
2020-02-17 12:21:33 +01:00
Nikita Popov 43443857b7 Add static return type
RFC: https://wiki.php.net/rfc/static_return_type

The "static" type is represented as MAY_BE_STATIC, rather than
a class type like "self" and "parent", as it has special
resolution semantics, and cannot be cached in the runtime cache.

Closes GH-5062.
2020-02-17 11:51:09 +01:00
Michael Voříšek d2ba848572 Use strlen for INI_* macros
strlen() is resolved at compile time by optimizing compilers.

Prevent mistakes and allow to use INI_* macros with char * variables
which can have sizeof() == 1.

Closes GH-5174.
2020-02-17 11:11:14 +01:00
Dmitry Stogov 53fc8ef41d Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable instantiation of zero size FFI\CData objects
  Fix # 79171: heap-buffer-overflow in phar_extract_file
  Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions
  Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
2020-02-17 12:54:11 +03:00
Dmitry Stogov cf8407a238 Fixed bug #79255 (PHP cannot be compiled with enable JIT) 2020-02-17 12:03:49 +03:00
Nikita Popov 7a8f180b19 Revert "Fixed bug #79255 (PHP cannot be compiled with enable JIT)"
This reverts commit de6984edd5.

Reverting to unbreak 32-bit CI.
2020-02-17 09:34:56 +01:00
Christoph M. Becker 7248341ea6 Fix # 79171: heap-buffer-overflow in phar_extract_file
We must not access memory outside of the allocated buffer.
2020-02-17 00:20:31 -08:00
Stanislav Malyshev bcbc053dc1 Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions 2020-02-17 00:20:31 -08:00
Stanislav Malyshev 90ae1818d5 Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress 2020-02-17 00:20:31 -08:00
Christoph M. Becker 406c5d5956 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79271: DOMDocumentType::$childNodes is NULL
2020-02-17 09:10:39 +01:00
Christoph M. Becker 7d0102dfa7 Revert "Replace @param annotations with type declarations"
This reverts commit c31029f335.
2020-02-17 08:55:18 +01:00
Xinchen Hui de6984edd5 Fixed bug #79255 (PHP cannot be compiled with enable JIT) 2020-02-17 13:13:49 +08:00
Tyson Andre 3d8342aa3c [skip ci] Skip 2 tokenizer tests if tokenizer isn't loaded
`./configure --disable-tokenizer` can disable tokenizer

Closes GH-5184
2020-02-16 19:22:22 -05:00
Christoph M. Becker c31029f335 Replace @param annotations with type declarations 2020-02-16 23:43:38 +01:00
Christoph M. Becker 6ee6097688 Constrain number parameter of numfmt_format to int|float
This is inline with similar changes to the math functions.  Especially,
array to number conversion makes no sense here, and is likely to hide
a programming error.

To make that feasible, we introduce the `n` specifier for classic ZPP
so we can stick with `zend_parse_method_parameters()`.

We also remove a test case, which has been degenerated to a ZPP test.
2020-02-16 16:48:35 +01:00
Tyson Andre d9b80efb57 [skip ci] Fix typos in UPGRADING
Closes GH-5183
2020-02-16 10:28:39 -05:00
Christoph M. Becker b442c89a23 Fix arginfo
These parameters accept int|float, since they are parsed with
`Z_PARAM_NUMBER`.
2020-02-16 14:29:36 +01:00
Anatol Belski 66c85c3f2f Update bundled config.guess and config.sub 2020-02-15 13:43:31 +01:00
Nikita Popov 8a4068988b Clarify that token_get_all() never returns false
It can only fail in TOKEN_PARSE mode, in which case it will throw.
2020-02-14 16:50:12 +01:00
Christoph M. Becker 95ea8b08b8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in recent bugfix
2020-02-14 09:24:38 +01:00
Nikita Popov e99d5d3923 Add stubs for zend_test 2020-02-13 16:51:34 +01:00
Nikita Popov 80392253e0 Add arginfo for HashContext::__construct()
Arginfo was already generated, just not referenced.
2020-02-13 16:51:23 +01:00
Nikita Popov 5264acc4f1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix Azure MacOS build
2020-02-13 16:18:25 +01:00
Christoph M. Becker a957e84c58 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77569: Write Acess Violation in DomImplementation
2020-02-13 15:17:25 +01:00
Nikita Popov f3d8ac1d95 Fix JIT trait type errors
We need to load EX->func here rather than use a hardcoded op_array,
as it may be copied with adjusted scope for traits.
2020-02-13 15:16:23 +01:00
Michael Voříšek f15b5ff353 Add const modifier for name strings
Closes GH-5173.
2020-02-13 14:44:06 +01:00
Xinchen Hui 9c5fb54c97 Improved the check
makefile.global is also used while building shared extension
2020-02-13 15:59:21 +08:00
Nikita Popov df71503e83 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove value from comment in php.ini files
2020-02-12 12:18:34 +01:00
Nikita Popov 907ae8d4c6 Reset required_num_args for disabled functions
Otherwise we may get arginfo/zpp mismatch errors.
2020-02-12 12:01:22 +01:00
Nikita Popov ae6f45ad45 var_dump(): Don't skip recursion detection on first level
This is confusing. The current output doesn't make it clear that
we're in fact recursing to the top-level structure.

Closes GH-5171.
2020-02-12 11:25:50 +01:00
Xinchen Hui 9e5650265c Fixed build (Only PHP above 7.1 could run the gen_stub.php) 2020-02-12 14:22:01 +08:00
Nikita Popov 5cf9710ba8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79257
2020-02-11 17:32:49 +01:00
Dmitry Stogov b79af3d4df Removed unused macro 2020-02-11 17:30:49 +03:00
Dmitry Stogov 437404b03a Reuse SEPARATE_ARRAY() macro 2020-02-11 16:42:23 +03:00
Nikita Popov ae2e4b5953 Add UPGRADING notes
Not listing the details here, I think the RFC is a better reference
for the precise technical details.

[ci skip]
2020-02-11 12:44:43 +01:00
Nikita Popov c141ee3f9c Allow arbitrary expressions in new/instanceof using () syntax 2020-02-11 12:33:23 +01:00
Nikita Popov 357fbc9902 Treat magic constants like normal constants 2020-02-11 12:33:23 +01:00
Nikita Popov ab154b7a64 Make class constants fully dereferencable 2020-02-11 12:33:23 +01:00
Nikita Popov de7c7efee9 Unify array and object dereferencability 2020-02-11 12:33:23 +01:00
Nikita Popov 465e6f53ed Split into fully_dereferencable and array_dereferencable 2020-02-11 12:33:23 +01:00
Nikita Popov cf5689e961 Split class_constant from constant production 2020-02-11 12:33:23 +01:00
Nikita Popov 24e365f9e2 Make encapsed strings fully dereferencable
This allows operations that were previously allowed on constant
strings on interpolated strings as well.
2020-02-11 12:33:23 +01:00
Nikita Popov d933591674 Add support for $obj::class
This allows $obj::class, which gives the same result as get_class($obj).
Anything other than an object results in TypeError.

RFC: https://wiki.php.net/rfc/class_name_literal_on_object

Closes GH-5065.
2020-02-11 12:16:30 +01:00
Christoph M. Becker 69819baee3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79254: getenv() w/o arguments not showing changes
2020-02-11 12:08:25 +01:00
ekinhbayar 8ceac81b45 Remove CURLOPT_PASSWDDATA block CURLOPT_PASSWDDATA was removed from curl as of 7.10.8
Closes GH-5166.
2020-02-11 12:04:24 +01:00
George Peter Banyard 4c9699f0d1 Revert "Fix [-Wmissing-field-initializers] compiler warning in ext/PDO"
Seems like Travis doesn't like this and now throws a
[-Werror=maybe-uninitialized] instead.

This reverts commit 051b01d465.
2020-02-11 00:57:52 +01:00
George Peter Banyard 051b01d465 Fix [-Wmissing-field-initializers] compiler warning in ext/PDO 2020-02-11 00:24:34 +01:00
George Peter Banyard a7e3bbbc55 Fix [-Wmissing-field-initializers] compiler warning in transliterator_methods.c 2020-02-11 00:23:52 +01:00
George Peter Banyard 01957adb7f Fix [-Wmissing-field-initializers] compiler warning in mysqlnd_result.c
Explicitly initialize to NULL the unused pointers to preserve
ABI forwards compatibility.
2020-02-10 12:14:47 +01:00
George Peter Banyard e01d2162b2 Fix [-Wmissing-field-initializers] compiler warning in zend_iterator
Add missing NULL pointer for get_properties_for in iterator_object_handlers
initialization.

Also add two missing comments describing what the NULL pointer refer
to in iterator_object_handlers initialization.
2020-02-10 11:46:19 +01:00
Dmitry Stogov a9e35b843c Save delayed call frame 2020-02-10 13:43:32 +03:00
George Peter Banyard fa99811389 Fix [-Wmissing-field-initializers] compiler warning in PHPDBG_COMMAND_HELP_D macro 2020-02-10 11:33:06 +01:00
Nikita Popov 42fbc76d9c Always invoke zpp in ReflectionProperty::getValue/isInitialized
Make sure we still perform a zpp check for the static case, and
also always enforce that the parameter is ?object. Otherwise we
violate the specified signature.
2020-02-10 11:05:26 +01:00
Nikita Popov 87f127d8fa Rename reflection stub file
Where possible, the stub file should match the name of the C file,
so that the build system integration automatically recompiles it.
2020-02-10 10:53:44 +01:00
Nikita Popov 74da772933 Fix stub for DomImplementation::createDocumentType() 2020-02-10 10:48:18 +01:00
Nikita Popov fc0c71ad30 Deref slow-path ASSIGN_OBJ result
We should not store a reference inside IS_TMP_VAR.
2020-02-10 10:42:06 +01:00
Nikita Popov 2ff79942cc Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove hint to security purpose of disable_functions
2020-02-10 10:05:42 +01:00
Xinchen Hui 421a7342fe Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79244 (php crashes during parsing INI file). (Laruence)
2020-02-10 13:02:45 +08:00
Máté Kocsis 86780ff79f Add stubs for NumberFormatter
Closes GH-4827
2020-02-09 22:10:12 +01:00
Ruud Boon 37965974fb Update release-process.md
I would like to suggest posting tweet to become part of the release process.

[skip ci] Closes GH-5144
2020-02-08 17:27:44 +01:00
Christoph M. Becker 42e7de1518 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79248: Traversing empty VT_ARRAY throws com_exception
2020-02-08 17:07:49 +01:00
Christoph M. Becker 377ac2a903 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79247: Garbage collecting variant objects segfaults
2020-02-08 11:06:45 +01:00
Anatol Belski 538c088a82 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update bundled stdxx check macros
2020-02-08 10:18:08 +01:00
Christoph M. Becker 78b71e1e8f Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test case on x86 where it otherwise fails [ci skip]
2020-02-07 21:11:32 +01:00
Christoph M. Becker 1d9e80a53d Simplify COM_ERR_CONST definition for x64
This is also a wee bit faster.
2020-02-07 18:25:24 +01:00
Christoph M. Becker 4bdc4da1c7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79242: COM error constants don't match com_exception codes
2020-02-07 18:11:41 +01:00
Nikita Popov d2befbc17d Merge branch 'PHP-7.4'
* PHP-7.4:
  PCRE: Only remember valid UTF-8 if start offset zero
  PCRE: Check whether start offset is on char boundary
2020-02-07 17:02:49 +01:00
Dmitry Stogov 24127d2e3f Removed ext/zip/tests/oo_namelocate.zip 2020-02-07 16:52:26 +03:00
Nikita Popov 2bc0a2253a Enable -msse2 on m32 builder
This helps to catch stack alignment issues in JIT.
2020-02-07 13:13:26 +01:00
Dmitry Stogov cf8dc1c1a2 typo 2020-02-07 14:21:56 +03:00
Dmitry Stogov 64b40f69dc Make ASSIGN, ASSIGN_OP, INC and DEC opcodes to return IS_TMP_VAR instead of IS_VAR.
This helps to avoid unnecessary IS_REFERENCE checks.
This changes some notices "Only variables should be passed by reference" to exception "Cannot pass parameter %d by reference".

Also, for consistency, compile-time fatal error "Only variables can be passed by reference" was converted to exception "Cannot pass parameter %d by reference"
2020-02-07 13:36:52 +03:00
Dmitry Stogov ad3f768253 Fixed stack alignment 2020-02-07 13:00:48 +03:00
Nikita Popov d8840a1b69 Try to fix Windows build 2020-02-07 12:59:48 +03:00
Nikita Popov bc6bab6cb4 Basic JIT support for verify return 2020-02-07 12:59:48 +03:00
Benjamin Eberlei e9b991d6a0 Fix ext/dom test helper method causing trailing whitespaces. 2020-02-06 22:24:37 +01:00
Dmitry Stogov 170cc10519 Fixed JIT for PTR_INC instruction to return de-referenced value of reference 2020-02-06 21:29:43 +03:00
Christoph M. Becker e1a46de938 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #66322: COMPersistHelper::SaveToFile can save to wrong location
2020-02-06 15:02:12 +01:00
Dmitry Stogov b53445422a Merge branch 'PHP-7.4'
* PHP-7.4:
  Make opcodes to return de-refereced values of typed references (in the same was as for non-typed)
2020-02-06 15:57:29 +03:00
George Peter Banyard c3e65d9069 Fix [-Wtype-limits] warning in LDAP by removing unnecessary condition
As context is a pointer to a berval struct and bv_len is of type
ber_len_t [1] which it self is defined as an unsigned integer [2]
this condition is always true.

[1] https://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=include/lber.h#l212
[2] https://www.openldap.org/software//man.cgi?query=ber_free&sektion=3&apropos=0&manpath=OpenLDAP+2.4-Release
2020-02-06 13:20:15 +01:00
Nikita Popov d4de3f95d6 Remove spurious const qualifier from function return type 2020-02-06 11:59:52 +01:00
Nikita Popov 53e527ad43 Remove ZEND_ACC_IMPLEMENT_INTERFACES flag
This is equivalent to checking ce->num_interfaces. The only subtle
moment is during inheritance, where num_interface may change when
parent interfaces are inherited. The check in zend_do_link_class
thus uses "interfaces", not "ce->num_interfaces".
2020-02-06 10:53:12 +01:00
Christoph M. Becker 40d615b24b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix NEWS [ci skip]
2020-02-06 10:49:53 +01:00
Nikita Popov f57f0920fd Remove ZEND_ACC_IMPLEMENTS_TRAITS flag
This is equivalent to checking ce->num_traits.
2020-02-06 10:45:49 +01:00
Nikita Popov 4f5f72c7af Remove ZEND_ACC_INHERITED flag
It is equivalent to checking ce->parent != NULL. Just adds more
state that needs to be kept in sync.
2020-02-06 10:42:25 +01:00
George Peter Banyard ac89139773 Fix [-Wtype-limits] in bundled GD lib by using signed integers
As seen in the gdImageRotateBicubicFixed() function the same setup
occurs but it uses signed integers, therefore we use also use
signed integers in gdImageRotateBilinear()

Moreover, these two functions have been removed upstream in
https://github.com/libgd/libgd/commit/bd6d2e101f6f1df106d1cd2e2dc8058a5538109b
therefore we should also mimic upstream and remove them...

Thanks to @cmb69 for pointing it out.
2020-02-06 01:34:09 +01:00
George Peter Banyard 62c51fc4a7 Adjust XFAIL tests due to TypeErrors
Closes GH-5152
2020-02-05 23:45:10 +01:00
George Peter Banyard 78f9f5e44f Fix false positive for -Wtype-limits in standard image ext 2020-02-05 18:10:09 +01:00
George Peter Banyard e4e1746b3f Remove unnecessary condition as always true.
ZSTR_LEN(str) is an unsigned integer therefor it is always greater
or equal than 0.

Detected by -Wtype-limits compiler warning.
2020-02-05 17:44:20 +01:00
George Peter Banyard c343c1bcae Fix some -Wold-style-declaration compiler warnings 2020-02-05 17:39:29 +01:00
Nikita Popov 065224190d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79188
2020-02-05 11:21:34 +01:00
George Peter Banyard b3f17ea5d5 Promote invalid mode/unknow option from Warning to ValueError for plain streams.
Closes GH-5076
2020-02-04 22:25:43 +01:00
George Peter Banyard 2efa0b3bfa Address path is 104 bytes on macOs compared to 108 on Linux 2020-02-04 22:23:56 +01:00
Máté Kocsis c42572970a Add various stubs for Intl
Closes GH-4826
2020-02-04 14:55:21 +01:00
Máté Kocsis a827db24f1 Add stubs for IntlCalendar
Closes GH-4846
2020-02-04 14:50:02 +01:00
Máté Kocsis 223663807a Fix ZPP of intl_cal_set() 2020-02-04 14:47:11 +01:00
Dmitry Stogov daee985709 Fixed JIT for BIND_GLOBAL 2020-02-04 15:56:55 +03:00
Máté Kocsis fe7761b0ad Add stubs for IntlDateFormatter & MessageFormatter
Closes GH-4812
2020-02-04 13:08:06 +01:00
Christoph M. Becker f6ddcfa6f3 Merge branch 'PHP-7.4' [ci skip]
* PHP-7.4:
  Next is 7.3.16
2020-02-04 11:46:57 +01:00
Christoph M. Becker f55f0ae978 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79019: Copied cURL handles upload empty file
2020-02-04 11:30:57 +01:00
Christoph M. Becker fabe6aa7dc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78090: bug45161.phpt takes forever to finish
2020-02-04 00:54:54 +01:00
Christoph M. Becker f00afaeed5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79191: Error in SoapClient ctor disables DOMDocument::save()
2020-02-03 23:38:40 +01:00
Nikita Popov f8d795820e Reindent phpt files 2020-02-03 22:52:20 +01:00
Nikita Popov d2cb200e10 Enable formatting of phpt files in tidy.php 2020-02-03 22:52:04 +01:00
Máté Kocsis 9942f45b7a Fix indentation/trailing whitespaces of 32-bit tests 2020-02-03 16:50:59 +01:00
Máté Kocsis 0253a232c3 Fix indentation/trailing whitespaces of tests 2020-02-03 15:04:02 +01:00
Nikita Popov 169805777c Merge branch 'PHP-7.4'
* PHP-7.4:
  Apply tidy formatting
2020-02-03 13:42:08 +01:00
Nikita Popov 6b38251820 Add bundled jit libraries to exclude list 2020-02-03 13:41:09 +01:00
Nikita Popov fc2663abef Merge branch 'PHP-7.4'
* PHP-7.4:
  Add tidy.php to enforce formatting
2020-02-03 13:35:49 +01:00
Christoph M. Becker d601b123e7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Relax test expectation
2020-02-03 13:05:54 +01:00
Christoph M. Becker aba6937c0a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79212: NumberFormatter::format() may detect wrong type
2020-02-03 12:30:42 +01:00
Remi Collet c2a61c9d06 zip ext is now 1.17.1 2020-02-03 11:37:20 +01:00
Derick Rethans d6b04bfbd5 Export zend_type_to_string() with ZEND_API 2020-02-03 10:26:20 +00:00
Remi Collet 4d80c3b7e0 Merge branch 'PHP-7.4'
* PHP-7.4:
  add test
  NEWS
  Fixed bug #73119 Wrong return for ZipArchive::addEmptyDir Method
2020-02-03 10:24:57 +01:00
Remi Collet 5eb9cffa14 Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS
  Fixed bug #73119 Wrong return for ZipArchive::addEmptyDir Method
2020-02-03 10:09:27 +01:00
Remi Collet 3375cfe0cf NEWS 2020-02-03 10:09:12 +01:00
Nikita Popov 98a8ab1389 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add WHITESPACE_SENSITIVE run-tests section
2020-02-03 10:08:20 +01:00
Remi Collet 0bc19a4b81 Fixed bug #73119 Wrong return for ZipArchive::addEmptyDir Method 2020-02-03 10:08:09 +01:00
Nikita Popov 4cdd15d414 Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable parallelism for FPM tests
2020-02-03 09:58:03 +01:00
Máté Kocsis 2015c7a48e Fix another batch of indentation in tests 2020-02-02 23:33:40 +01:00
Akim Demaille 4cbffd89d9 Clean up the generation of the parsers
Prefer '%define api.value.type' to '#define YYSTYPE', so that Bison
know the type.

Use '%code requires' to declare what is needed to define the api.value.type
(that code is output in the generated header before the generated
definition of YYSTYPE).

Prefer '%define api.prefix' inside the grammar file to '-p' outside,
as anyway the functions defined in the file actually use this prefix.

Prefer `%param` to both `%parse-param` and `%lex-param`.

Closes GH-5138
2020-02-01 14:21:53 +01:00
Akim Demaille 2127a37b83 Bison: enable all the warnings and fix them
First, fix 5547d361208d90e12d53bb62bb2ffbbff9b93ca0: the definition of
YFLAGS was not passed into the Makefile: AC_SUBST does not suffice, we
need PHP_SUBST_OLD.  While at it, allow to pass variable and value at
the same time.

Then pass -Wall to bison, rather than only -Wempty-rules.

Use %precedence where associativity is useless.

Remove useless %precedence.
GH-5138
2020-02-01 14:21:21 +01:00
Pieter Hordijk b97c9dc72a Added opcache extension to inis
Extensions are not loaded by default (commented out)

Closes GH-5136
2020-02-01 07:15:18 +01:00
Máté Kocsis 19222b8581 Fix var_dump test 2020-01-31 18:36:43 +01:00
Máté Kocsis 8b36be268d Fix indentation and whitespaces in tests
In preparation for GH-5074
2020-01-31 17:47:14 +01:00
Sebastian Pop ee87e86d0a inline by hand to avoid uninitialized variable warning
When compiling with "-Wall -Werror" gcc emits two errors:

../src/pcre2_jit_neon_inc.h:211:8: error: ‘cmp1b’ is used uninitialized in this function [-Werror=uninitialized]
  211 | data = fast_forward_char_pair_compare(compare1_type, data, cmp1a, cmp1b);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/pcre2_jit_neon_inc.h:212:9: error: ‘cmp2b’ is used uninitialized in this function [-Werror=uninitialized]
  212 | data2 = fast_forward_char_pair_compare(compare2_type, data2, cmp2a, cmp2b);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The compiler emits the error message before inlining.
Because the warning is based on an intra-procedural data
flow analysis, the compiler does not see that cmp1b and
cmp2b are not used when they are not initialized.

Here is the code of that function, cmp2 is only used
when ctype is compare_match2 or compare_match1i,
and not when ctype is compare_match1:

static inline vect_t fast_forward_char_pair_compare(compare_type ctype, vect_t dst, vect_t cmp1, vect_t cmp2)
{
if (ctype == compare_match2)
 {
 vect_t tmp = dst;
 dst = VCEQQ(dst, cmp1);
 tmp = VCEQQ(tmp, cmp2);
 dst = VORRQ(dst, tmp);
 return dst;
 }

if (ctype == compare_match1i)
  dst = VORRQ(dst, cmp2);
dst = VCEQQ(dst, cmp1);
return dst;
}

The patch inlines by hand the case of compare_match1 such that the
code avoids referring to cmp1b and cmp2b.

Tested on aarch64-linux with `make check`.
2020-01-31 14:56:51 +01:00
Dmitry Stogov 2b279b428f We don't need "safe" destruction anymore 2020-01-31 16:01:09 +03:00
Dmitry Stogov 6b862e82d9 These EG(current_execute_data) = EX(prev_execute_data) assignments are useless now 2020-01-31 14:50:41 +03:00
Dmitry Stogov 08d2d9257d Export zend_dump_op() and add ZEND_DUMP_NUMERIC_OPLINES flag to print oplines as "dddd" instead of "Ld+" 2020-01-31 13:27:35 +03:00
Nikita Popov d8a1e3dab0 Fix JIT as well 2020-01-31 10:35:46 +01:00
Nikita Popov ec0ce49f5c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #76047
2020-01-31 10:30:09 +01:00
Akim Demaille 37d0f7d3b3 Use "%empty" in the parsers, instead of comments
The annotation %empty is properly enforced: warnings when it's
missing, and errors when it's inappropriate.  Support for %empty was
introduced in Bison 3.0.

Pass -Wempty-rule to Bison.

Closes GH-5134
2020-01-31 09:52:40 +01:00
Remi Collet b915d68852 Zip: version is now 1.17.0
change for Windows (which have libzip 1.4 by default)
update NEWS
2020-01-31 09:10:10 +01:00
Remi Collet 3af1cee884 add ZipArchive::registerProgressCallback and ZipArchive::registerCancelCallback methods 2020-01-31 09:06:42 +01:00
Dmitry Stogov 7e7a85e881 Fixed JIT part for bug #79094 2020-01-31 10:39:22 +03:00
Dmitry Stogov 7ebf1d44ed Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79094 (Crashing when running recursion function)
2020-01-31 10:34:28 +03:00
Benjamin Eberlei 176ec97a16 Add NEWS entry for new ReflectionProperty methods. 2020-01-30 17:48:20 +01:00
Máté Kocsis 5bf6aedae4 Promote mysqli warnings to exceptions
Closes GH-5058
2020-01-30 17:05:07 +01:00
Nikita Popov 453713868f Revert "Make BG(syslog_device) per request"
This reverts commit b0d7b126a2.

This change wasn't quite right: I noticed only now that the
RSHUTDOWN function is #ifdef PHP_WIN32 and I'm not fully convinced
that ifdef can be removed: syslog might also be used by error
logging in FPM for example, in which case we probably shouldn't
be closing the log here.

Generally it's unclear how the openlog() functionality exposed
by PHP is supposed to interact with openlog() uses by SAPIs.

For now I'll just revert this change and let it leak across
requests.
2020-01-30 16:18:02 +01:00
Nikita Popov 981fdd9f51 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix cross compilation failure due to size_t typecast in define
2020-01-30 15:52:22 +01:00
Nikita Popov ca8657a2b5 Initialize SplFixedArray elements to NULL instead of UNDEF
The SplFixedArray API treats all elements as NULL, even if they
have not been explicitly initialized. Rather than initializing
to UNDEF an treating that specially in various circumstances,
directly initialize elements to NULL.

This also fixes an assertion failure in the attached test case.
2020-01-30 15:31:39 +01:00
Nikita Popov b33697d47e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79193
2020-01-30 14:56:31 +01:00
Nikita Popov 38e27625ea Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix live range calculation for FE_FETCH
2020-01-30 14:24:28 +01:00
Nikita Popov a66e226713 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix DatePeriod property handling with indirect modification
2020-01-30 13:14:29 +01:00
Christoph M. Becker 2dc5077159 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #70078: XSL callbacks with nodes as parameter leak memory
2020-01-30 13:07:34 +01:00
Nikita Popov 0078727866 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix leak in DateTimeImmutable::modify()
2020-01-30 12:17:15 +01:00
Nikita Popov 24a3d0dbd0 Update test for warning -> fatal error change 2020-01-30 12:12:09 +01:00
Nikita Popov d5dd46fb09 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix copying of functions in variance obligations
2020-01-30 11:56:36 +01:00
Nikita Popov 7c34d73876 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add SKIPIF to test requiring mbregex
2020-01-30 11:21:32 +01:00
Nikita Popov 472fc3a2a9 Fix leak in DatePeriod construction with invalid format
Same issue as I fixed in DateInterval construction before.
2020-01-30 11:13:04 +01:00
Nikita Popov cb7b21009b Merge branch 'PHP-7.4'
* PHP-7.4:
  Reset trampoline on executor startup
  Fix UAF in is_callable() and allocated trampoline
2020-01-30 11:05:56 +01:00
Christoph M. Becker 1468484296 Fix #74063: NumberFormatter fails after retrieval from session
While it would be desireable to actually support unserialization of
NumberFormatter instances, at least we should not allow serialization
for now.

We also remove some doubtful tests, which have been added[1] claiming
that they would crash the intl extension, but apparently no fix has
been applied, and the test cases have not been marked as XFAIL.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=ed793b2a3f857fd49c0c1b036062140da5b3e674>
2020-01-30 10:13:29 +01:00
Nikita Popov 7d170eb295 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix shift ub in mbstring
  Restore digit check in mb_decode_numericentity()
2020-01-30 10:08:21 +01:00
Christoph M. Becker dda67d3226 Enable ZipArchive::setMtime(Name|Index) on Windows
These are enabled on non Windows systems as of zip 1.16.0 with libzip
>= 1.0.0.  Since Windows builds use at least libzip 1.4.0, we also
enable these methods there.
2020-01-29 18:19:54 +01:00
Nikita Popov 2e97ae91c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix mb_ord() crash if internal encoding not supported
2020-01-29 16:19:21 +01:00
Nikita Popov b2c8abe951 Merge branch 'PHP-7.4'
* PHP-7.4:
  Better overflow check for entity decoding
2020-01-29 16:08:55 +01:00
Nikita Popov 22d2a80031 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reset MBREX(search_re) in RSHUTDOWN
2020-01-29 16:05:47 +01:00
Remi Collet b8d635cd22 zip extension version is now 1.16.1 2020-01-29 14:26:03 +01:00
Remi Collet 272698d7fd Merge branch 'PHP-7.4'
* PHP-7.4:
  zip: more constants
2020-01-29 14:25:26 +01:00
Anatol Belski 92df876949 Merge branch 'PHP-7.4'
* PHP-7.4:
  Backport 7d2ef3d2e5 into 7.4
2020-01-29 13:40:09 +01:00
Nikita Popov 42e22a2d91 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix use of mb_ereg_search_getregs() after invalid pattern
2020-01-29 12:50:47 +01:00
Anatol Belski 7d2ef3d2e5 Fix datatype
This has been introduced by 84b0d0faba.
Besides it causes runtime issues on POWER5 (and presumably later), the
implementation would expect this array to consist on 32-bit integers.
2020-01-29 12:36:37 +01:00
Nikita Popov 083bbf5140 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix length inconsistency in mb_convert_encoding
2020-01-29 12:22:58 +01:00
Nikita Popov bc32cce6a2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix recovery of large entities in mb_decode_numericentity()
2020-01-29 11:49:27 +01:00
Nikita Popov a73df8e5f9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use "%define parse.error verbose"
2020-01-29 11:16:38 +01:00
Dmitry Stogov 8bdce8edab Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79092 (Building with clang+lld-9 results in a broken PHP binary)
2020-01-29 12:15:34 +03:00
Máté Kocsis cffff1fb03 Merge branch 'PHP-7.4'
* Fix #78666 mysqli_options generates Warning on var_dump()
2020-01-28 18:51:00 +01:00
Nikita Popov 38d205a5b1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix memory leak in mb_str_split
2020-01-28 17:40:07 +01:00
Nikita Popov 7d3a6e7149 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix mysqli_get_warnings() with multi queries
2020-01-28 17:17:07 +01:00
Christoph M. Becker 0563dfee1b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79174: cookie values with spaces fail to round-trip
2020-01-28 15:37:51 +01:00
Nikita Popov d91b166c3a Avoid shift UB for large arrays
Don't shift into the sign bit.
2020-01-28 15:34:08 +01:00
Nikita Popov 7db3a51884 Only fetch to_encoding once in mb_convert_encoding()
Instead of doing it on every conversion. This is both more efficient
and avoids generating multiple warnings.
2020-01-28 15:12:24 +01:00
Nikita Popov b0d7b126a2 Make BG(syslog_device) per request
This is not supposed to be retained across requests. Explicitly
free it at the end of a request, and use the per-request allocator.
2020-01-28 14:44:52 +01:00
Christoph M. Becker 3b9e822e11 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable support for LIBZIP_VERSION
2020-01-28 13:35:20 +01:00
Nikita Popov 648f16c2ec Fix rel_date leak on DateInterval construction failure 2020-01-28 13:11:49 +01:00
Nikita Popov 2342c06584 Throw an exception if default_dir not set, but required
Previously the RETURN_THROWS() assertion failed for this case.
2020-01-28 12:35:35 +01:00
Remi Collet d91abf76e0 zip: fix lib check 2020-01-28 11:32:42 +01:00
Nikita Popov c59219de85 Perform map ptr base arithmetic through uintptr_t
Adding an offset to the NULL pointer is undefined behavior.
Avoid this by performing arithmetic on uintptr_t instead.
2020-01-28 11:24:04 +01:00
Nikita Popov 521c405108 Don't index NULL pointer when fetching non-existent constant 2020-01-28 11:20:57 +01:00
Remi Collet ac9a265f01 - bump zip extension version to 1.16.0 - add ZipArchive::setMtimeName and ZipArchive::setMtimeIndex methods 2020-01-28 10:53:49 +01:00
Nikita Popov 3bae1793ab Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78989
2020-01-28 10:44:37 +01:00
Christoph M. Becker 9a5ea0de69 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #76584: PharFileInfo::decompress not working
2020-01-28 10:40:00 +01:00
Christoph M. Becker 7e5a8d9faa Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79172: STRUCT_OFFSET() relies on undefined behavior
2020-01-28 09:19:45 +01:00
Tyson Andre 5f92a085cc Convert ZEND_ECHO operand to string after sccp
And filter out echoes of the empty string (e.g. false/null)

Split out of #5097 (on GitHub)

Closes GH-5118
2020-01-27 20:21:24 -05:00
George Peter Banyard 9a76a2a032 Convert some warnings into ValueErrors in the standard file extension
Closes GH-5007
2020-01-27 23:20:40 +01:00
Remi Collet cb1b26ac9c Merge branch 'PHP-7.4'
* PHP-7.4:
  - bump zip extension version to 1.15.6 - add ZipArchive::LIBZIP_VERSION - skip bug53885.phpt with libzip 1.6.0 (empty file is no more valid archive)
2020-01-27 16:48:54 +01:00
Nikita Popov 8dd91f52a5 Remove state pointer argument from php_strip_tags 2020-01-27 16:13:36 +01:00
Máté Kocsis d6a6a60ef9 Merge branch 'PHP-7.4' 2020-01-27 14:04:19 +01:00
Nikita Popov 16f194c75e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78323: Code 0 is returned on invalid options
2020-01-27 13:32:51 +01:00
Tyson Andre 3f6779879c [skip ci] Fix typos in NEWS 2020-01-26 16:13:02 -05:00
Markus Staab 9f4d1b9936 Fix typo [ci skip] 2020-01-26 16:08:46 +01:00
Christoph M. Becker 2fe86669c9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add CURLOPT CURLOPT_HTTP09_ALLOWED available since 7.64.0
2020-01-26 14:14:52 +01:00
Anatol Belski 378010a120 Fix bundled PCRE2 compilation on ARM64 2020-01-25 17:44:18 +01:00
Anatol Belski 52d07834df Upgrade bundled PCRE2 to 10.34 2020-01-25 13:37:37 +01:00
George Peter Banyard 12e903d894 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79080 [ci skip]
2020-01-25 13:31:43 +01:00
George Peter Banyard 300d4df654 Add mention about empty needles for strrch() functions in UPGRADING [ci skip] 2020-01-25 12:34:42 +01:00
George Peter Banyard ba82e18755 Allow empty needle in mb_strrchr() 2020-01-25 12:22:01 +01:00
George Peter Banyard 986da2a436 Convert warnings to ValueError in mb_strpos function family.
Closes GH-5109
2020-01-24 23:59:22 +01:00
Nikita Popov ebd00c5b65 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79128
2020-01-24 16:20:30 +01:00
wbender 98bfad738a Fix bug #64865: Use CONTEXT_DOCUMENT_ROOT for scanning dir tree
If CONTEXT_DOCUMENT_ROOT is set use that rather than DOCUMENT_ROOT to
scan up the dir tree looking for .user.ini files.

Closes GH-5051.
2020-01-24 15:33:55 +01:00
Nikita Popov 9b9436d9b0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix mysqli ssl test for tls1.3
2020-01-24 15:15:36 +01:00
Nikita Popov dc6ede092f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79011
  Fix memory leaks in mysqlnd debug functionality
2020-01-24 14:55:00 +01:00
Christoph M. Becker c8eceba2c7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make test independent of online XSD schema
  Yet another check for php_strip_tags_ex()
2020-01-24 14:20:59 +01:00
Remi Collet a1d3f999c1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add ZipArchive::CM_LZMA2 constant (since libzip 1.6.0)
2020-01-24 14:06:38 +01:00
Christoph M. Becker 5d65641011 Merge branch 'PHP-7.4'
* PHP-7.4:
  Yet another check for php_strip_tags_ex()
2020-01-24 13:04:26 +01:00
Nikita Popov 1d0247db7d Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't use CRLF when generating diffs
2020-01-24 12:28:54 +01:00
Nikita Popov c2d0a413cc Also use zend_memnrstr in mbfl_strpos 2020-01-24 11:42:54 +01:00
Nikita Popov d504ad5717 Base mbfl_strpos on zend_memnstr
The same algorithm is also used by zend_memnstr, but it also has
a fast-path for short strings / needles, where a more naive
search performs better.
2020-01-24 11:29:34 +01:00
Nikita Popov 73b31302ed Extract calculation of offset from pointer 2020-01-24 11:15:58 +01:00
Nikita Popov 9e0e8d5650 Handle mb_str(r)ipos offset consistently as well 2020-01-24 10:54:20 +01:00
Nikita Popov ce6169832f Move offset error checking into mbfl_strpos
This avoids calculating the full length only in order to validate
the offset, as mbfl_strpos needs to find the offset internally
anyway.
2020-01-24 10:50:02 +01:00
Nikita Popov 0f6d223ddb Add #defines for mbfl_strpos error conditions 2020-01-24 10:02:41 +01:00
Nikita Popov e72bf63691 Allow variadic arguments to replace non-variadic ones
Any number of arguments can be replaced by a variadic one, so
long as the variadic argument is compatible (in the sense of
contravariance) with the subsumed arguments.

In particular this means that function(...$args) becomes a
near-universal signature: It is compatible with any function
signature that does not accept parameters by-reference.

This also fixes bug #70839, which describes a special case.

Closes GH-5059.
2020-01-23 15:23:31 +01:00
Nikita Popov 4da7e67d12 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug76348.phpt
2020-01-23 15:09:59 +01:00
Nikita Popov a2e4392439 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78902
  Add unit test for bug #78902
2020-01-23 14:58:15 +01:00
Nikita Popov 60f62359a0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79151
2020-01-23 14:21:21 +01:00
George Peter Banyard 2b5fb76de6 Apply custom format/length modifier removal to spprintf
This mimicks the changes made to the custom snprintf implementation
by removing the custom 'v' format and custom 'I' length modifier
from the spprintf implementation.

Closes GH-5108
2020-01-23 13:45:28 +01:00
Christoph M. Becker 28e650abf8 Revert "Merge branch 'PHP-7.4'"
This reverts commit 046dcfb531, due to
segfaults on Travis.  This needs to be investigated.
2020-01-23 13:12:16 +01:00
Nikita Popov 9c23a50939 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79155
2020-01-23 12:55:59 +01:00
Christoph M. Becker a93ce58862 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable UBSan in addition to ASan
2020-01-23 12:00:50 +01:00
Christoph M. Becker 046dcfb531 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make MSVCRT memory leak checking usable for the test suite
2020-01-23 11:48:20 +01:00
Stanislav Malyshev a698e36aa8 Merge branch 'PHP-7.4'
* PHP-7.4:
  More checks for php_strip_tags_ex
2020-01-22 23:06:35 -08:00
George Peter Banyard 0719035f9d Add ValueError for invalid mode in count()
Closes GH-5106
2020-01-23 00:14:20 +01:00
Máté Kocsis 4281c2a989 Add UPGRADING notes [skip ci] 2020-01-22 23:24:50 +01:00
Benjamin Eberlei 7a52bf21d3 Add ReflectionProperty::getDefaultValue and ReflectionProperty::hasDefaultValue 2020-01-22 21:24:36 +01:00
Máté Kocsis 476636841f Fix #78649 Provide ICU RELATIVE_ constants
Closes GH-5105
2020-01-22 19:59:40 +01:00
Christoph M. Becker 3987a31130 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't leak encoding_str
2020-01-22 11:17:20 +01:00
Christoph M. Becker da9c206781 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79154: mb_convert_encoding() can modify $from_encoding
2020-01-22 10:32:06 +01:00
Christoph M. Becker 4327b113a0 Fix test expectation
As of PHP 8.0.0, array to string conversion raises a warning.
2020-01-22 10:21:55 +01:00
Christoph M. Becker 8f4d07bff0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79149: SEGV in mb_convert_encoding with non-string encodings
2020-01-22 09:45:37 +01:00
Remi Collet fe8af59b6a Merge branch 'PHP-7.4'
* PHP-7.4:
  next will be 7.2.28
2020-01-22 09:18:13 +01:00
Tyson Andre 0c696577eb Use smaller batch size in run-tests.php when appropriate
- When valgrind is used, communication overhead is relatively small,
  so just use a batch size of 1.
- If this is running a small enough number of tests,
  reduce the batch size to give batches to more workers.
  (Previously, if there were 90 tests and -j8,
  only 3 of 8 workers would get a batch of size 32 or less.
  After this change, the batch size is 12 or less)

Closes GH-5098
2020-01-21 20:07:08 -05:00
Tyson Andre 549f55fc3f Don't start unnecessary processes with run-tests.php -j
If there's only 2 files to test, then only start 2 workers instead of N.

If there's only 1 file, then avoid parallelism entirely.
A separate option such as `--force-parallel` could be added
if this turns out to be something developers would want to do
when debugging test failures.
2020-01-21 20:05:06 -05:00
Nikita Popov 85ea04b747 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid some @count() suppressions in run-tests.php
2020-01-21 18:50:14 +01:00
Nikita Popov 06e193ba8d Merge branch 'PHP-7.4'
* PHP-7.4:
  Add sleep in FPM reload test
2020-01-21 17:56:43 +01:00
Nikita Popov a3e29ba34a Prefer using declaring class rather than direct parent in error
Point to the class that actually declares the property, which is
not necessarily the same as the direct parent class.
2020-01-21 17:19:07 +01:00
Nikita Popov b0c920f94b Simplify __call fetching for static methods
If we have a __call on a parent, we should always also have a
__call on the child, so there's no need to perform this walk.
2020-01-21 17:04:24 +01:00
Nikita Popov 12fec7a14e Simplify constant updating for properties
Instead of walking up the parent chain, use the scope stored in
the property info. This way we only need to walk one list of
property infos.
2020-01-21 16:29:56 +01:00
Christoph M. Becker 7cb1a706bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79145: openssl memory leak
2020-01-21 16:21:39 +01:00
Nikita Popov 1f1a7ecaf2 Simplify ReflectionProperty::getDeclaringClass() 2020-01-21 15:21:07 +01:00
George Peter Banyard 13178087c7 Drop the custom 'v' format from snprintf custom implementation.
Extensions should instead use the standard 's' format.

Closes GH-5100
2020-01-21 13:18:13 +01:00
Christoph M. Becker 5a6f3de8ac Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79146: cscript can fail to run on some systems
2020-01-21 11:54:33 +01:00
Christoph M. Becker a9aee3db09 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS wrt. sec fixes
2020-01-21 11:49:17 +01:00
Nikita Popov 26a9045bb6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix file clash in bug54446.phpt tests
2020-01-21 11:39:20 +01:00
Nikita Popov fcdb610a0c Fix double free in array_reduce
return_value needs to be explicitly nulled out in the failure case.
2020-01-21 11:26:24 +01:00
Stanislav Malyshev 5217666a78 fix test: fgetss() no longer exists 2020-01-20 23:31:30 -08:00
Stanislav Malyshev 545f77d313 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`)
  Fix #79099: OOB read in php_strip_tags_ex
  Fix #79091: heap use-after-free in session_create_id()
2020-01-20 22:47:28 -08:00
George Peter Banyard aaa1f90e3f Drop the custom I length modifier from snprintf custom implementation.
Extensions should rather use the ZEND_LONG_FMT, ZEND_ULONG_FMT and
ZEND_XLONG_FMT macros defined in php-src/Zend/zend_long.h

Closes GH-5089
2020-01-20 23:03:10 +01:00
Tyson Andre 691880b22c Speed up unserializing object properties
Hash table lookups are slow.
Don't do one a second time to update the property.

The call to zend_hash_update_ind goes back to 8b0deb8cd2

Background: Properties are IS_INDIRECT when they're a declared property,
and point to properties_table.
See https://nikic.github.io/2015/06/19/Internal-value-representation-in-PHP-7-part-2.html#objects-in-php-7
2020-01-20 09:54:04 -05:00
Nikita Popov 0fbdc5a378 Remove unnecessary result variable
Instead directly use return_value. Hopefully this also works
around the "may be uninitialized" warning...
2020-01-20 11:08:51 +01:00
Nikita Popov 6811222422 Eliminate uses of ZVAL_ZVAL and friends
Instead add RETURN_COPY(_VALUE) macros will the expected behavior.

RETURN_ZVAL doesn't make any sense since PHP 7, but has stuck
around, probably because the alternative was to write directly to
the return_value variable.
2020-01-20 10:34:17 +01:00
Nikita Popov 5947437d47 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #79112: IMAP can't find OpenSSL during configure
2020-01-20 09:59:40 +01:00
Nikita Popov 6ada49a469 Merge branch 'PHP-7.4'
* PHP-7.4:
  Increase timeout in mysqli_reap_async_query test
2020-01-20 09:54:38 +01:00
Xinchen Hui ce5d722a6d Merge branch 'PHP-7.4'
* PHP-7.4:
  Let's make this safer from maliciously crafted filename
2020-01-20 12:35:08 +08:00
Xinchen Hui 5aa12d2e32 Merge branch 'PHP-7.4'
* PHP-7.4:
  minor cleanup
2020-01-20 12:29:23 +08:00
Xinchen Hui 31dd635eb3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79114 (Eval class during preload causes class to be only half available)
2020-01-20 12:25:10 +08:00
Máté Kocsis 99db00b1f2 Fix #78880 Another round 2020-01-19 18:28:43 +01:00
Christoph M. Becker 7426e3b6a1 Bump required libcurl version to 7.29.0
libcurl 7.29.0 has been released almost eight years ago, so this
version is supposed to be available practically everywhere.  This bump
also allows us to get rid of quite some conditional code and tests
catering to very old libcurl versions.
2020-01-19 14:10:46 +01:00
Tyson Andre 3c72105edb Remove leftover ZEND_CAST code for (unset) cast.
Followup for d74d3922ce

Attempting to require a file with (unset) casts results in an E_COMPILE_ERROR
that can't be caught or handled by set_exception_handler/set_error_handler.

Also remove the (bool) cast, because the ZEND_BOOL opcode handles that.

Remove inference that array -> object cast can throw.
It was added in 2a286ad599 - I don't know how creating an stdClass would throw.
(numeric keys, references, etc. don't cause it to throw)

Closes GH-5042
2020-01-18 11:06:19 -05:00
Máté Kocsis d1764ca330 Make error messages more consistent by fixing capitalization
Closes GH-5066 As a first step, let's capitalize their initial letter when it is applicable.
2020-01-17 14:52:46 +01:00
Nikita Popov 117b18d22d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79115
2020-01-17 11:38:18 +01:00
Nikita Popov 9ec1ee5976 Add support for deprecating constants
Internal constants can be marked as CONST_DEPRECATED, in which
case accessing them will throw a deprecation warning.

For now this is only supported on global constants, not class
constants. Complain to me if you need to deprecate a class
constant...

Closes GH-5072.
2020-01-17 10:05:06 +01:00
Nikita Popov ae706e51e1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update php.ini files to add missing FTP extension
2020-01-17 09:51:31 +01:00
Nikita Popov 75aa5bfa9e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #71876
2020-01-17 09:48:50 +01:00
Nikita Popov 43719022ea Improve SSA representation of FE_FETCH
The op2 of FE_FETCH is only written if the loop edge is taken.
Fix up the SSA form to use the pre-assignment value if the exit
edge is taken.

This allows us to properly infer the type of the loop variable,
without letting the pre-loop type leak in.

Closes GH-5040.
2020-01-17 09:41:27 +01:00
Nikita Popov bd1977282c Use zend_type inside type lists
Instead of having a completely independent encoding for type list
entries. This is going to use more memory, but I'm not particularly
concerned about that, as type unions that contain multiple classes
should be uncommon. On the other hand, this allows us to treat
top-level types and types inside lists mostly the same.

A new ZEND_TYPE_FOREACH macros allows to transparently treat list
and non-list types the same way. I'm not using it everywhere it could be
used for now, just the places that seemed most obvious.

Of course, this will make any future type system changes much simpler,
as it will not be necessary to duplicate all logic two times.
2020-01-17 09:37:54 +01:00
Máté Kocsis afdaa91170 Fix #78880: Final spelling fixes 2020-01-16 19:14:31 +01:00
Nikita Popov 1fa6f03265 Fix reflection leak if type inside type list is resolved 2020-01-16 15:30:24 +01:00
Christoph M. Becker 1e62e627fd Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable optimizations for ASan instrumented builds
2020-01-16 13:58:28 +01:00
Máté Kocsis c3cf01b553 Fix #78880: Yet another batch of spelling errors 2020-01-16 12:04:00 +01:00
Máté Kocsis 0b4778c377 Fix #78880: Another bunch of spelling errors 2020-01-16 09:46:47 +01:00
Christoph M. Becker 9d7e03c325 Remove useless skip check
As of PHP 5.4.0, `detect_unicode` is always available, so this check
cannot fail.
2020-01-15 18:38:15 +01:00
Christoph M. Becker 5d3be966f9 Use proper printf() specifiers 2020-01-15 18:18:36 +01:00
George Peter Banyard 9118a96fb0 Remove va_copy from zend_portability as it's always available since C99 2020-01-14 22:56:03 +01:00
Christoph M. Becker f6fbe13717 Rename run-test.php to run-tests.php in the test packs
In the php-src repository, the test runner is named run-tests.php, but
when it is copied to the tests packs, it is renamed to run-test.php.
This renaming does not make sense, and is actually somewhat confusing.
Although changing the name back to run-tests.php constitutes a BC
break, we think the benefit of having a single name outweights the
disadvantages in the long run.
2020-01-14 18:31:25 +01:00
Christoph M. Becker 03bd4333f6 Add imagegetinterpolation()
While `imagesetinterpolation()` is available as of PHP 5.5.0,
there is no according getter function, so users would have to track the
current interpolation method manually.

To remedy this, we introduce `imagegetinterpolation()` as thin wrapper
for `gdImageGetInterpolationMethod()` (which has been introduced with
libgd 2.1.1), and use `im->interpolation_id` as fallback for older
libgd.  Since our bundled libgd does not yet have this function, we add
it.

We also simplify the recently introduced bug79068.phpt, where it is
sufficient to check that the interpolation method has not been changed.
2020-01-14 18:25:27 +01:00
Christoph M. Becker 127d6f3f39 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79096: FFI Struct Segfault
2020-01-14 16:47:24 +01:00
Dmitry Stogov 77bf144d52 Inline hot parts of bitwise instructions into hybrid VM 2020-01-14 13:47:10 +03:00
Christoph M. Becker 7232779fca Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79106: PDO may fetch wrong column indexes with PDO::FETCH_BOTH
2020-01-13 18:49:38 +01:00
Christoph M. Becker ed78c6dbae Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #79106: PDO may fetch wrong column indexes with PDO::FETCH_BOTH
2020-01-13 18:48:55 +01:00
Christoph M. Becker 30ce242435 Fix #79106: PDO may fetch wrong column indexes with PDO::FETCH_BOTH
Column names can be numeric strings, so we have to make sure to insert
the column values with the appropriate numeric keys, instead of adding
them.
2020-01-13 18:47:54 +01:00
Dmitry Stogov 8ee04946f0 typo 2020-01-13 16:25:42 +03:00
Christoph M. Becker 8ea190ba95 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79084: mysqlnd may fetch wrong column indexes with MYSQLI_BOTH
2020-01-13 13:24:12 +01:00
Nikita Popov dc02e68f77 Try to fix ZTS build 2020-01-13 13:12:55 +01:00
Nikita Popov d2110e9880 Use helper in one more place 2020-01-13 12:44:16 +01:00
Nikita Popov 862a4f3a5e Fix build 2020-01-13 12:42:51 +01:00
Dmitry Stogov 27815959e1 Improve access to zend_map_ptr data 2020-01-13 14:27:35 +03:00
Nikita Popov 1caf0951a0 Handle one more case I missed 2020-01-13 12:06:23 +01:00
Nikita Popov 5d869df753 Make class name references use the class_name production
Throw a compile error for "static" references instead, where it
isn't already the case.

Also extract the code that does that -- we have quite a few places
where we get a const class ref and require it to be default.
2020-01-13 11:51:09 +01:00
Nikita Popov 2a3e37a496 Don't use yystrlen()
This is unnecessary and not available when GLR is used.
2020-01-13 11:23:30 +01:00
Islam Israfilov f553e676ec Fixed #78385: Distinguish absent/empty query/fragment
http://example.com/foo   => query = null, fragment = null
http://example.com/foo?  => query = "",   fragment = null
http://example.com/foo#  => query = null, fragment = ""
http://example.com/foo?# => query = "",   fragment = ""

Closes GH-5078.
2020-01-13 10:18:23 +01:00
Nikita Popov 4388add2c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test
2020-01-13 10:10:16 +01:00
Christoph M. Becker c1519321e7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Bring back test case support for older MySQL versions
2020-01-11 11:22:30 +01:00
George Peter Banyard 1589266f85 Remove dead code and unused DEFINEs
Closes GH-5073
2020-01-10 22:24:15 +01:00
Christoph M. Becker 7c76126841 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test cases which fail on Windows debug builds
2020-01-10 20:02:16 +01:00
Nikita Popov ddc5553ecd Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unnecessary whitespace sensitivtiy from some tests
2020-01-10 17:38:39 +01:00
Christoph M. Becker f91dbac9ae Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test for Windows ZTS builds
2020-01-11 06:17:37 +14:00
Nikita Popov 7ce531f2c2 Make constant() error handling consistent with plain const lookup
This means we get an Error exception and a much better error
message indicating the root cause (e.g. accessing a private class
constant).
2020-01-10 13:39:56 +01:00
Nikita Popov 0a2f6c5527 Move undefined constant error into get_constant_ex
All the other error conditions are already handled in there, so
this one should be as well.
2020-01-10 11:48:10 +01:00
George Peter Banyard b79efec994 Remove unused delimiter parameter in php_fgetcsv_lookup_trailing_spaces subroutine. 2020-01-10 03:38:16 +01:00
Christoph M. Becker f6c9319bec Merge branch 'PHP-7.4'
* PHP-7.4:
  Silence potential taskkill error messages
2020-01-09 19:03:43 +01:00
Nikita Popov 55618ff118 Convert infallible mysqli checks to asserts 2020-01-09 18:56:30 +01:00
Nikita Popov 307dd465c1 Remove unused MYSQLI_STATUS_CLEARED 2020-01-09 18:56:30 +01:00
Christoph M. Becker c13077a895 Fix test
The typo in the echoed string had been fixed in master; fix the
expectation as well.
2020-01-09 18:40:58 +01:00
Christoph M. Becker b2aac6cc3a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix useless tests
2020-01-09 17:44:41 +01:00
Christoph M. Becker f1e00033e6 Allows further tests to run on Windows 2020-01-09 12:04:29 +01:00
Christoph M. Becker 718fc4cefd Use IS_WINDOWS 2020-01-09 12:04:28 +01:00
Christoph M. Becker 10c420f84a Replace fakemail with minimal PHP script 2020-01-09 12:04:28 +01:00
Christoph M. Becker 64633044c5 Unify mail related tests for *nix and Windows
Currently mail related tests are split for *nix and Windows (if there
are even Windows versions).  The basic difference is that the *nix
variants set the INI directive sendmail_path to just write the email to
disk, while the Windows tests use ext/imap.  The latter tests are way
more verbose, and such duplicated tests are generally a pain point.
Furthermore, the Windows tests are much slower, and could not be run
without ext/imap being available.

We therefore introduce a small fakemail application, which basically
works like `tee <path> >/dev/null`, and which will be shipped with the
Windows tests packs.  fakemail.exe would also need to be added to the
PHP binary SDK, so these tests could be run during developments.

To cater to the remaining differences, we also introduce support for
`{MAIL:<path>}` placeholders in the INI sections to run-tests.php.  How
to use this can be seen in mail_basic.phpt, which is currently the only
modified test case, because these tests are yet supposed to fail on
Windows, due to the missing fakemail.exe in the PHP SDK.
2020-01-09 12:04:28 +01:00
Nikita Popov 0a9bdd6e7b Merge branch 'PHP-7.4'
* PHP-7.4:
  Increase select timeout in FPM tester
2020-01-09 10:20:28 +01:00
Christoph M. Becker aa5a24d6fc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79086: Bump version not applied
2020-01-09 09:26:58 +01:00
George Peter Banyard b670823749 Convert some warnings to Errors in BZip2
Closes GH-4984
2020-01-09 00:58:12 +01:00
George Peter Banyard 928afd8fb7 Convert some warnings to Error in zlib extension
Closes GH-4985
2020-01-09 00:56:58 +01:00
George Peter Banyard 66659d6cf6 [ci skip] Update UPGRADING 2020-01-09 00:38:47 +01:00
Christoph M. Becker 5836c7063b Avoid superfluous assignments
These values are already set via the initializers.
2020-01-09 00:17:14 +01:00
Christoph M. Becker 3c6a230b71 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79078: Hypothetical use-after-free in curl_multi_add_handle()
2020-01-08 18:43:35 +01:00
Christoph M. Becker 21426793b9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump version
2020-01-08 18:27:53 +01:00
Christoph M. Becker 8f185d3586 Merge branch 'PHP-7.4'
* PHP-7.4:
  Extract function
2020-01-08 16:56:28 +01:00
Nikita Popov d5f26de63d Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Display a message if select in FPM test timeouts"
2020-01-08 16:32:00 +01:00
Nikita Popov c669a1a4da Merge branch 'PHP-7.4'
* PHP-7.4:
  Display a message if select in FPM test timeouts
2020-01-08 15:57:21 +01:00
Nikita Popov d0d1654a34 Fix #49555: Improve "function must be a string" error message
Be more specific for the individual cases and provide relevant
type information.
2020-01-08 14:32:11 +01:00
Nikita Popov 33476ec301 Refer to method rather than function name in error message 2020-01-08 14:26:27 +01:00
Nikita Popov ae5d7604f6 Fix #65274: Add class name to undef class constant error 2020-01-08 14:18:14 +01:00
George Peter Banyard 4cac97bfb9 Add warning and convert to exception in string offset assignment:
Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned to the offset if provided
a needle that is longer than one byte.

[1] https://wiki.php.net/rfc/engine_warnings

Closes GH-5063
2020-01-07 22:55:43 +01:00
George Peter Banyard 483efc7e50 Allow empty needles in mb_strpos and mb_strstr function family.
MBstring analogous implementation to 6d578482a9

Closes GH-4977
2020-01-07 22:53:35 +01:00
George Peter Banyard bfe3f934a3 Add warning and convert to exception in string offset assignment:
Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned to the offset if provided
a needle that is longer than one byte.

[1] https://wiki.php.net/rfc/engine_warnings
2020-01-07 21:54:42 +01:00
Christoph M. Becker b8609e2fa7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make test more resilient
2020-01-07 15:29:51 +01:00
Nikita Popov 1e4920c119 Renumber zval types, clarify allowed overlap
Make it clear that types used for type declarations can overlap
with the rest, and can also overlap in MAY_BE space.

This makes things more robust against the addition of new primitive
types.
2020-01-07 14:55:52 +01:00
Christoph M. Becker da48d25ea2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Increase sleep() time in test case
2020-01-07 14:27:34 +01:00
Christoph M. Becker 3e075cadfb Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump version
2020-01-07 11:13:24 +01:00
Nikita Popov 9b6c0bdcd6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove support for preloading on Windows
2020-01-06 22:42:31 +01:00
Nikita Popov b22daa3a06 Merge branch 'PHP-7.4'
* PHP-7.4:
  Throw Error when referencing uninit typed prop in __sleep
2020-01-06 18:47:44 +01:00
Christoph M. Becker d9caf3561b [ci skip] Merge branch 'PHP-7.4'
Empty merge.
2020-01-06 15:34:41 +01:00
Christoph M. Becker d7833fd974 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #54298: Using empty additional_headers adding extraneous CRLF
2020-01-06 14:51:14 +01:00
Nikita Popov 29df9d13da Rename skeleton stub file
Add the .php suffix
2020-01-06 14:43:29 +01:00
Christoph M. Becker be0b94c220 Fix hypothetical segfault in gdTransformAffineCopy()
This has been reported to upstream[1], but since ext/gd never calls
`gdTransformAffineCopy()` for a palette image, it is not a bug for PHP.
Therefore we apply the fix to master only.

[1] <https://github.com/libgd/libgd/issues/586>
2020-01-06 13:25:11 +01:00
Nikita Popov 0b4da7e6da Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't link against openssl 1.1 in curl
2020-01-06 10:43:05 +01:00
Christoph M. Becker 5c51a482c9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79068: gdTransformAffineCopy() changes interpolation method
2020-01-06 10:39:00 +01:00
Nikita Popov 730f4f25db Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #79063: Curl openssl does not respect PKG_CONFIG_PATH
  Clean up curl openssl check
2020-01-06 10:31:34 +01:00
Christoph M. Becker bc04d5e9fc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79067: gdTransformAffineCopy() may use unitialized values
2020-01-06 09:38:19 +01:00
Christoph M. Becker d83f89f076 Remove useless else branch
Passing `NULL` as `gdTransformAffineGetImage()`'s `src_area` is fine,
but in this case there's no need to calculate the `rect`, and since
`pRect` has already been initialized to `NULL`, we can remove the whole
else branch.
2020-01-06 08:54:57 +01:00
Máté Kocsis 019e8d438c Throw exception for unconstructed intl objects
Closes GH-5052
2020-01-05 23:55:14 +01:00
Christoph M. Becker ade217d05c Remove duplicate test cases
These had originally used other exit codes as mail_basic5.phpt, but
that was changed later with commit d1b12c9[1].

[1] <http://git.php.net/?p=php-src.git;a=commit;h=d1b12c9a3031841302722d6f6706e4598a639d7a>
2020-01-05 20:08:39 +01:00
Gabriel Caruso fc99e89baf Fix slowest tests 2020-01-05 18:30:51 +01:00
Matteo Beccati 0f89d407fc Fix build if SQLITE_RECURSIVE is not supported 2020-01-04 10:27:43 +01:00
Tyson Andre 37a7046d85 Merge branch 'identical-handler' into HEAD 2020-01-03 19:04:20 -05:00
Máté Kocsis 1abea33b1e Fix usage of RETURN_THROWS() in LDAP extension 2020-01-03 22:40:16 +01:00
Máté Kocsis aadd3aaed9 Use RETURN_THROWS() in various places 2020-01-03 21:10:24 +01:00
Máté Kocsis bbcfa66e06 Use RETURN_THROWS() after zend_fetch_resource*() 2020-01-03 19:20:56 +01:00
Máté Kocsis e08ce4c13d Add stubs for various intl functions
Closes GH-4819
- Add stubs for idn functions
- Add stubs for grapheme functions
- Add stubs for Spoofchecker
- Add stubs for Normalizer
- Add stubs for ResourceBundle
- Fix arginfos
- Add support for union return types
- Fix arginfo for resourcebundle_create()
2020-01-03 18:54:57 +01:00
Christoph M. Becker bb3946a5e2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached
2020-01-03 18:51:25 +01:00
Christoph M. Becker d4927668bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78538: shmop memory leak
2020-01-03 18:13:44 +01:00
Máté Kocsis 7b4a4d2ace Use RETURN_THROWS() after try_convert_to_string() 2020-01-03 17:04:06 +01:00
mike 1658b5babc Adding DateTime(Immutable)::createFromInterface()
These are like

    DateTime::createFromImmutable()
    DateTimeImmutable::createFromMutable()

but accept any DateTimeInterface instead.

Closes GH-5016.
2020-01-03 16:55:12 +01:00
Nikita Popov fb8ffda690 Merge branch 'PHP-7.4'
* PHP-7.4:
  Slightly increase tolerance in time_sleep_until() test
2020-01-03 16:49:42 +01:00
Christoph M. Becker a2e98a6a01 Merge branch 'PHP-7.4'
* PHP-7.4:
  Try to fix intermittently failing test case
2020-01-03 16:45:23 +01:00
Christoph M. Becker 1400f4ac12 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79015: undefined-behavior in php_date.c
2020-01-03 14:32:56 +01:00
Christoph M. Becker 54ec44a862 Don't enable sanitizer by default for Windows snapshot builds
Snapshot builds are release builds, and therefore enabling sanitizers
is undesireable.
2020-01-03 14:17:08 +01:00
Máté Kocsis 8f4f1dea34 Convert zend_parse_parameters_none() to fast ZPP
I've done the conversion in those extensions where fast ZPP is predominant.
2020-01-03 13:23:37 +01:00
Máté Kocsis b7d2882fee Use zend_parse_parameters_none() instead of zend_parse_parameters_none_throw() 2020-01-03 13:22:39 +01:00
Nikita Popov f23378d84a Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unnecessary strncpy in zip
2020-01-03 12:03:31 +01:00
Nikita Popov 0e6cff70a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for bug #73816
2020-01-03 11:27:27 +01:00
Nikita Popov 7ba18b0b39 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #71876
2020-01-03 11:16:25 +01:00
Nikita Popov 36c8e57495 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79056
2020-01-03 11:09:06 +01:00
Nikita Popov d8c9902567 Implement WeakMap
RFC: https://wiki.php.net/rfc/weak_maps
2020-01-03 10:43:24 +01:00
Máté Kocsis 763788afea Use RETURN_THROWS() after zend_throw_exception() in reflection extension 2020-01-03 10:18:34 +01:00
Máté Kocsis 1b93cfee0c Use RETURN_THROWS() after zend_parse_method_parameters() 2020-01-02 23:01:37 +01:00
Christoph M. Becker d3b911952b Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test case for bug #78883
2020-01-02 19:28:45 +01:00
Nikita Popov 1f48b15150 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79055
  Extract functions for file cache type serialization
2020-01-02 15:55:01 +01:00
Nikita Popov 3bc4159a19 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix file cache run_time_cache unserialization
  Update ZCSG(map_ptr_last) only if for_shm
2020-01-02 15:01:56 +01:00
Nikita Popov 0d35f8e3f2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Populate hashtable of __sleep() properties
  Deref names returned by __sleep()
  Extract php_var_serialize_nested_data() function
2020-01-02 11:14:16 +01:00
Máté Kocsis 01a50778d1 Use RETURN_THROWS() after zend_throw_exception() in most of the extensions 2020-01-02 10:56:18 +01:00
Nikita Popov a6486088f8 Switch hash() function to use fastzpp
For short inputs ZPP can be a large fraction of the hash()
execution time.
2020-01-02 10:06:16 +01:00
Nikita Popov 7c787e56b0 Switch php_hash_fetch_ops() to use zend_string
This has two advantages: If the string is already lowercase, we
do not need to copy it, and it will hopefully match the interned
string name of the hash, making the comparison more efficient.
2020-01-02 10:05:12 +01:00
Tyson Andre a9c04aee67 Always delete tempfile created by ftruncate test.
The ftruncate() test will fill up the disk when the disk has less than
2GB of space left, on some systems.
I think it expands the file to less than 2GB, then returns an error code,
and the file remains at the larger size.

Because the disk is full, the `--CLEAN--` script can't be saved to
`ftruncate_bug76422.clean.php` to be executed, and the cleanup can't be run.
Subsequent tests also fail to run.

Closes GH-5043
2020-01-01 11:20:32 -05:00
Máté Kocsis 349a286461 Use RETURN_THROWS() after zend_throw_error() 2020-01-01 16:42:30 +01:00
Máté Kocsis 9099dbd961 Use RETURN_THROWS() after zend_type_error() 2020-01-01 14:23:21 +01:00
Máté Kocsis 12ce73a5bb Use RETURN_THROWS() after zend_value_error() 2019-12-31 16:58:15 +01:00
Máté Kocsis 817605917b Use RETURN_THROWS() during ZPP in the remaining extensions
In reflection, sodium, and SPL
2019-12-31 16:33:02 +01:00
Christoph M. Becker 062744fbdf Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Revert "Add test case for bug #78883"
2019-12-31 14:27:45 +01:00
Christoph M. Becker f7eb8141c4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test case for bug #78883
2019-12-31 13:09:57 +01:00
Christoph M. Becker d694edaee4 Fix erroneous change 2019-12-31 12:24:01 +01:00
Christoph M. Becker e0b288020b Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove superfluous compiler option
2019-12-31 12:00:48 +01:00
Máté Kocsis 345703724c Use RETURN_THROWS() during ZPP in most of the extensions
Except for some bigger ones: reflection, sodium, spl
2019-12-31 11:46:11 +01:00
Máté Kocsis d9ac1ca8de Use ZEND_THROWS() during ZPP in the GD, gettext, GMP, and hash extensions 2019-12-31 00:21:38 +01:00
Máté Kocsis 382a038e05 Use ZEND_THROWS() during ZPP in enchant, exif, fileinfo, filter, and FTP extensions 2019-12-31 00:21:37 +01:00
Máté Kocsis 2f7309b1e9 Use RETURN_THROWS() during ZPP in the date, dba and dom extensions 2019-12-31 00:21:37 +01:00
Máté Kocsis 76c45f35f5 Use RETURN_THROWS() during ZPP in bz2, calendar, com_dotnet extensions 2019-12-31 00:21:37 +01:00
Nikita Popov 3262c28d5c Merge branch 'PHP-7.4'
* PHP-7.4:
  Also propagate include exceptions in opcache
  Make url_stats in resolve_path quiet
2019-12-30 23:22:39 +01:00
Christoph M. Becker 1ff6911d6a Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid undefined behavior
2019-12-30 23:18:34 +01:00
Nikita Popov d5c886ab7d Merge branch 'PHP-7.4'
* PHP-7.4:
  Properly propagate url_stat exceptions during include
2019-12-30 22:57:07 +01:00
Christoph M. Becker 48b44612d4 Fix typo 2019-12-30 18:32:52 +01:00
Christoph M. Becker 55fd97c576 Fix #78790: mysqli_get_client_info() expects exactly 0 parameters, 1 given
Although the `mysqli` parameter is unused, it had been accepted so far,
and the documentation even claims that parameter would be required.  To
not break BC, we allow it again.
2019-12-30 17:40:16 +01:00
Máté Kocsis e1b57310b1 Use RETURN_THROWS() during ZPP in main, sapi, win32, and Zend 2019-12-30 17:38:10 +01:00
Máté Kocsis 31cf9a7ea9 Use RETURN_THROWS() when an exception is thrown
Closes GH-5036
2019-12-30 17:38:10 +01:00
Nikita Popov d21ad4d955 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79046
2019-12-30 17:24:16 +01:00
Christoph M. Becker 1ab9d626d1 Fix typo 2019-12-30 17:21:50 +01:00
Máté Kocsis e34a1f9289 Convert zend_parse_parameters_none() to fast ZPP in standard lib
Closes GH-5037
2019-12-30 15:28:37 +01:00
Christoph M. Becker e57b2b9465 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79040: Warning Opcode handlers are unusable due to ASLR
2019-12-30 15:18:25 +01:00
Wouter Wijsman f13d0a72d5 Add FILTER_VALIDATE_BOOL as alias for FILTER_VALIDATE_BOOLEAN
Both filters are equivalent, but FILTER_VALIDATE_BOOL uses our
canonical name for the type (the only one permitted in type
declarations for example), so the new name is preferred long
term.

The old name may be deprecated in the future, but no specific
timeline is planned.
2019-12-30 14:18:03 +01:00
Nikita Popov 6c6d36bb94 Fix SSA construction for ADD_ARRAY_ELEMENT in RC_INFERENCE mode
This was broken in cc29cbe80c.
2019-12-30 13:29:32 +01:00
Nikita Popov 32fbd2489f Regenerate stubs
Looks like these GD changes got lost along the way...
2019-12-30 12:27:31 +01:00
Nikita Popov d8bd113b51 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for bug #79031
  Revert "Increase serialize_lock while decoding session"
2019-12-30 11:31:56 +01:00
Christoph M. Becker e1559b51cd Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing skipif clause
2019-12-28 11:02:03 +01:00
Christoph M. Becker 86675dd3f9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79033: Curl timeout error with specific url and post
2019-12-28 10:49:56 +01:00
Nikita Popov 184f118d3f Merge branch 'PHP-7.4'
* PHP-7.4:
  Handle empty password fast path in caching_sha2_password
  Handle error response during caching_sha2_password auth
  Add support for caching_sha2_password in change user authentication
  Fix unix socket check during caching_sha2_password
  Support auth switch request during caching sha2 auth
2019-12-27 17:31:27 +01:00
Nikita Popov 7e130df249 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't use PASSWORD() function in test
  Specify explicit row order in PDO MySQL test
  Skip bug77956.phpt if local_infile disabled on server
  Don't check TIMESTAMP NOT NULL in fetch_field_flags test
  Don't test the RENAME DATABASE query
  Make GeomFromText tests compatible with MySQL 8
2019-12-27 17:26:42 +01:00
Christoph M. Becker 3fafa19777 Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test for clang builds
2019-12-27 15:11:51 +01:00
Christoph M. Becker 388c582ee9 Clarify usage of max_fd in php_poll2() on Windows
Actually, `max_fd` is not used on Windows, since `PHP_SAFE_MAX_FD` and
`select` ignore it; so it makes no sense to calculate it in the loop.
Even worse, since `php_socket_t` is unsigned on Windows, it will never
be modified during the loop, because `SOCK_ERR` is already the largest
representable value of that type.

Therefore we skip the loop on Windows, and add a clarifying comment.
2019-12-27 13:41:29 +01:00
Dmitry Stogov 7b69855bd0 Fixed type_info for new array element (it may be only NULL) 2019-12-26 16:32:45 +03:00
Dmitry Stogov cc29cbe80c cleanup 2019-12-26 11:54:05 +03:00
Christoph M. Becker cdc2c7427e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter).
2019-12-25 12:36:25 +01:00
Christoph M. Becker 66b626f39c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test case
2019-12-25 12:09:37 +01:00
Xinchen Hui ce4d80a85a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter).
2019-12-25 16:29:30 +08:00
Xinchen Hui 66a591aebe Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter)"
2019-12-25 15:28:13 +08:00
Xinchen Hui 24ccbb0057 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter)
  Partial fix for bug #79029

Conflicts:
	ext/xmlwriter/php_xmlwriter.c
2019-12-25 13:18:23 +08:00
Dmitry Stogov e874811221 Build call graph before type inference 2019-12-24 16:15:24 +03:00
Xinchen Hui b418f335d4 Implemented FR #78638 (__PHP_Incomplete_Class should be final)
This should be minor and won't impact anyone
2019-12-24 17:09:44 +08:00
Xinchen Hui 3f3c1ad848 Merge branch 'PHP-7.4'
* PHP-7.4:
  Similar problem (#79022) also exists in Interfaces
  Fixed bug #79022 (class_exists returns True for classes that are not ready to be used)
2019-12-24 14:21:52 +08:00
Tyson Andre dea62d4b0c Speed up ZEND_IS_IDENTICAL when it can't throw
Add a specialized opcode handler to use for `===`/`!==` when:

1. At least one side is a $cv, and the other is a $cv or CONST
   (avoids the need to free operands)
2. Neither operand can be undefined or a reference
   (avoids the need for error handling and dereferencing)

```
// Elapsed time decreased from 0.275 seconds to 0.243 seconds in combination
// with PR #4982
function count_same(array $values) {
    $same = 0;
    foreach ($values as $x) {
        foreach ($values as $y) {
            if ($y === $x) {
                $same++;
            }
        }
    }
    return $same;
}
$values = range(0, 5000);
$values[] = new stdClass();
$values[] = null;
$values[] = 3;
$start = microtime(true);
$total = count_same($values);
```
2019-12-23 15:42:42 -05:00
Dmitry Stogov 1e53769d82 Set opcode handler 2019-12-23 14:14:47 +03:00
Christoph M. Becker dabc28d182 Fix #78880: Spelling error report
We fix the most often occuring typos according to a recent codespell
report[1] in tests, code comments and documentation.

[1] <https://fossies.org/linux/test/php-src-master-f8f48ce.191129.tar.gz/codespell.html>.
2019-12-21 11:58:00 +01:00
Máté Kocsis eff56f83af Promote warning to exception for proc_open() when null byte is encountered
GH-5004
2019-12-20 17:54:12 +01:00
Nikita Popov 1d6325fb01 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix leak when generator closed during yield in finally
2019-12-20 17:46:43 +01:00
Máté Kocsis d9eb97d745 Remove unnecessary FN type information from OPCache
GH-5029
2019-12-20 16:45:57 +01:00
Máté Kocsis f3d5a5a9d3 Promote warnings to exceptions in string search related functions
GH-5004
2019-12-20 16:43:40 +01:00
Máté Kocsis 17598d503d Promote warnings to exceptions in proc_open() function
GH-5004
2019-12-20 16:43:40 +01:00
Máté Kocsis a2d83a6cb5 Promote warrnings to exceptions in chgrp() function
GH-5004
2019-12-20 16:43:40 +01:00
Máté Kocsis 9585964dd7 Promote warning to exception in dns_check_record() function
GH-5004
2019-12-20 16:43:40 +01:00
Christoph M. Becker cfefba6ddd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79008: General performance regression with PHP 7.4 on Windows
2019-12-20 16:29:39 +01:00
GITSRCandChristoph M. Becker 269f44f682 Simplify constant expression
Co-Authored-By: Christoph M. Becker <cmbecker69@gmx.de>
2019-12-20 15:41:03 +01:00
Nikita Popov ed0b788ce7 Fix merge mistake 2019-12-20 15:13:40 +01:00
Máté Kocsis 0e8070778e Make get_defined_vars() always return an array
GH-5025
2019-12-20 14:31:57 +01:00
Máté Kocsis f52f471a5e Fix F1 type information in OPCache
Closes GH-5025
2019-12-20 14:31:30 +01:00
Máté Kocsis d59bc80782 Fix smaller issues with stubs
GH-5025
2019-12-20 14:31:07 +01:00
Nikita Popov ca6c54274c Merge branch 'PHP-7.4'
* PHP-7.4:
  Try to make proc_open_bug69900.phpt more robust
2019-12-20 13:52:08 +01:00
Nikita Popov 2bc0a6e97f Fix string offset signed int UB in jit as well 2019-12-20 12:11:07 +01:00
Nikita Popov ed372541da Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78982: pdo_pgsql returns dead persistent connection
2019-12-20 12:06:24 +01:00
Máté Kocsis bf645d6dc1 Remove unnecessary F0 type information from OPCache
Closes GH-5024
2019-12-20 12:03:08 +01:00
Máté Kocsis 297b1f8335 Fix return type of strval()
GH-5024
2019-12-20 12:02:35 +01:00
Máté Kocsis d7b2082352 Add stubs for standard library
Closes GH-5017
2019-12-20 12:01:35 +01:00
Máté Kocsis 7bfeef602a Promote warnings to exceptions in stream-related functions
GH-5017
2019-12-20 12:01:02 +01:00
Nikita Popov 566b356eca Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78980: pgsqlGetNotify() overlooks dead connection
2019-12-20 11:45:50 +01:00
Nikita Popov 5902b35f85 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79000
2019-12-20 11:38:01 +01:00
BohwaZ 3958592487 Add setAuthorizer method to SQLite3
This adds the possibility to define a userland callback that will be
used to authorize or not an action on the database.
2019-12-20 11:33:23 +01:00
Nikita Popov 5f2f450554 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #74170: locale information change after mime_content_type
2019-12-20 11:24:14 +01:00
Nikita Popov d011f60eb1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78402: pcntl_signal() misleading error message
2019-12-20 11:03:15 +01:00
Nikita Popov 0d8ebbaa73 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix early free of assign_obj op_data
2019-12-20 10:35:50 +01:00
Máté Kocsis 2ab123b84e Convert string|array union parameter types
Closes GH-4995
2019-12-20 10:15:52 +01:00
Dmitry Stogov 621842e3f5 RECV opcode optimization 2019-12-20 06:46:25 +03:00
Máté Kocsis bc231f017b Add upgrading note about implode() [ci skip] 2019-12-19 22:58:26 +01:00
Dmitry Stogov a31b5eca68 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78999 (Cycle leak when using function result as temporary)
2019-12-19 23:19:31 +03:00
Christoph M. Becker 77c58fc53c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78983: pdo_pgsql config.w32 cannot find libpq-fe.h
2019-12-19 13:21:52 +01:00
Nikita Popov 557a211f46 Adjust test for notice->warning change 2019-12-19 12:03:09 +01:00
Nikita Popov e15915d21c Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid signed integer overflow in string offset check
2019-12-19 11:48:20 +01:00
Nikita Popov 89d1e6b7d0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add destructor annotations in ini parser
2019-12-19 10:43:23 +01:00
Nikita Popov 2a76384b87 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix leak in assign_ref with function
2019-12-18 17:18:46 +01:00
Nikita Popov 655d5c8383 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78776
2019-12-18 15:56:10 +01:00
Remi Collet 78fd95ced8 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix release date
  fix release date
  fix release date
2019-12-18 14:18:16 +01:00
Nikita Popov aadd5e69e0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78986
2019-12-18 11:41:11 +01:00
Fabien Villepinte d02c99444c Merge branch 'PHP-7.4' 2019-12-18 11:10:10 +01:00
Nikita Popov 1f5f4736d9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rethrow generator exception even without active stack frame
2019-12-18 11:04:51 +01:00
Nikita Popov 48d5100738 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix use-after-free when trying to write to closure property
2019-12-18 10:24:41 +01:00
Nikita Popov e0a31cee32 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix freeing of dynamic call name
2019-12-18 10:11:40 +01:00
Nikita Popov 8eabaf7efc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix const/cv freeing on failed reference assignment
2019-12-18 09:54:18 +01:00
Christoph M. Becker 2a856049d1 Merge branch 'PHP-7.4'
* PHP-7.4:
  More updates to CONTRIBUTING.md
2019-12-17 20:01:44 +01:00
Christoph M. Becker 26e1f88011 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update CONTRIBUTING.md
2019-12-17 19:58:46 +01:00
Christoph M. Becker 32df9aeda5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78976: SplFileObject::fputcsv returns -1 on failure
2019-12-17 17:53:44 +01:00
Nikita Popov 7194825c86 Fix leak of dynamic property name in address helper 2019-12-17 16:59:35 +01:00
Nikita Popov 83ff4f5986 Merge branch 'PHP-7.4'
* PHP-7.4:
  Free buffer in php_verror even if it is empty
2019-12-17 16:47:49 +01:00
Nikita Popov ed55a61b8b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix resetting of internal_encoding and friends
2019-12-17 16:28:56 +01:00
Dmitry Stogov b7e1eecd54 Avoid generation of "jmp" to next instruction 2019-12-17 15:42:02 +03:00
Nikita Popov f0d1a27951 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid float to int cast UB in exif
2019-12-17 13:26:32 +01:00
Dmitry Stogov 97bba4ffd6 Make "exception_handler_undef" stub to check EG(opline_before_exception) and undefine corresponnding result variable, if necessary.
This fixes few invalid "exception_handler_undef" usages.
2019-12-17 14:09:26 +03:00
Christoph M. Becker 4ce1fdacb5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update/fix NEWS [ci skip]
2019-12-17 10:05:40 +01:00
Christoph M. Becker 9c0b18c16e Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update NEWS
  [ci skip] Update  NEWS
  Fix test
2019-12-17 10:03:13 +01:00
Dmitry Stogov b1f08079b5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Property names of internal classes from temporary extensins, loaded by dl(), may be emalloc-ed strings.
2019-12-17 10:13:13 +03:00
Dmitry Stogov 6895eb4db5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed memory leak
2019-12-17 10:09:43 +03:00
Dmitry Stogov c8dbbd74e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed memory leaks
2019-12-17 09:58:56 +03:00
Nikita Popov 7d07f19eee Merge branch 'PHP-7.4'
* PHP-7.4:
  Set opcache.optimization_level=0 in test
2019-12-16 20:23:53 +01:00
Stanislav Malyshev 90b1362629 Fix tests 2019-12-16 10:59:36 -08:00
Stanislav Malyshev 6556916759 Merge branch 'PHP-7.4'
* PHP-7.4:
  Test fixes
2019-12-16 10:31:40 -08:00
Stanislav Malyshev 0dfff646a2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test
  Fix bug #78793
  Fix build - no model field anymore
  Fixed bug #78910
  Fix #78878: Buffer underflow in bc_shift_addsub
  Fix test
  Fix #78862: link() silently truncates after a null byte on Windows
  Fix #78863: DirectoryIterator class silently truncates after a null byte
  Fix #78943: mail() may release string with refcount==1 twice
2019-12-16 10:07:15 -08:00
Nikita Popov 69eaddabf8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove DateTime class registration test
2019-12-16 18:57:47 +01:00
Nikita Popov 98527d7d4c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78973
2019-12-16 18:53:32 +01:00
Dmitry Stogov 546392b346 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78961 (erroneous optimization of re-assigned $GLOBALS)
2019-12-16 12:25:40 +03:00
Nikita Popov 7df8f952ae Further reduce parse depth limit in mbstring fuzzer
Depth limit of 1024 still causes optimize_node stack overflows
when running under asan.
2019-12-14 22:43:15 +01:00
George Peter Banyard fdf45debdf Remove deprecated behaviour of passing encoding as third parameter in mb_strrpos()
Merged GH-5011
2019-12-13 22:03:27 +01:00
George Peter Banyard 0a173abc84 Revert "Remove dead code in libmbfl, memory device"
Stop trusting CLion's automatic dead code detection because it seems to be wrong
more often than not.
This reverts commit 612c86db3e.
2019-12-13 18:43:14 +01:00
George Peter Banyard af84ebb041 Remove dead code in sanitizing_filter.c of the filter extension 2019-12-13 17:59:52 +01:00
George Peter Banyard 612c86db3e Remove dead code in libmbfl, memory device 2019-12-13 17:58:37 +01:00
Nikita Popov 72a5fdec2c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78921
2019-12-13 16:38:42 +01:00
Nikita Popov 9de4f87aca Limit parse depth in mbstring fuzzer
The default depth of 4096 is large enough to cause optimize_node
stack overflows under asan. Reduce to 1024.
2019-12-13 16:09:28 +01:00
Nikita Popov a40a69fdd0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Introduce extra counter to avoid RTD key collisions
2019-12-13 11:05:41 +01:00
Dylan T 01875e8b26 phar: fix offset*() prototypes 2019-12-13 10:41:50 +01:00
Máté Kocsis e699b2865f Fix exception message of implode() 2019-12-12 23:05:12 +01:00
Christoph M. Becker 4c5a178df8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78929: plus signs in cookie values are converted to spaces
2019-12-12 14:22:32 +01:00
Máté Kocsis beee92a887 Remove support for mixing parameter order in implode() 2019-12-12 13:49:05 +01:00
Máté Kocsis 37c1171451 Promote warnings to exceptions in password_*() functions 2019-12-12 12:14:53 +01:00
Nikita Popov d56768817b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78950: Preloading trait method with static variables
2019-12-12 11:52:51 +01:00
Nikita Popov cf9362195b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix handling of non-final loop var free in sccp
2019-12-12 09:40:54 +01:00
Tyson Andre 1695d3ed07 Add funcinfo for spl global functions
This assumes that `iterator_*` will now always throw or abort on failure.

Also, move #include _arginfo.h directive to the top of the file - virtually all
other files put it there, and developers may base code on basic_functions.c.

Closes GH-4968
2019-12-11 18:17:04 -05:00
George Peter Banyard 4782e8e28a Return empty string instead of NULL in serialize().
Modifiy its return type accordingly and arginfo.
2019-12-12 00:01:28 +01:00
Christoph M. Becker 15340bea04 Merge branch 'PHP-7.4'
* PHP-7.4:
  uint/ulong removal may affect other platforms as well
2019-12-11 23:45:03 +01:00
Christoph M. Becker e161c7bd89 Merge branch 'PHP-7.4'
* PHP-7.4:
  Typo fix in php.ini-production
2019-12-11 23:16:05 +01:00
Máté Kocsis 51eefd8079 Add stubs for standard library 2019-12-11 18:50:36 +01:00
Máté Kocsis 381c9c180b Promote warnings to exceptions in sapi_windows_* functions 2019-12-11 18:48:14 +01:00
Máté Kocsis 3b0a1905dd Promote warning to exception in unserialize() 2019-12-11 18:47:59 +01:00
Máté Kocsis f0b5d55c6f Promote warning to exception in parse_url() 2019-12-11 18:47:48 +01:00
Máté Kocsis 555eec7d86 Promote warnings to exceptions for some filter functions 2019-12-11 18:47:17 +01:00
Tyson Andre c31229429b Merge branch 'array_filter-optimize' into HEAD 2019-12-11 09:40:13 -05:00
Nikita Popov 231bc7c8be Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fixed bug #78903: Conflict in RTD key for closures results in crash"
2019-12-11 14:40:02 +01:00
George Peter Banyard a90abe2064 Convert warnings to TypeError in php_spl.c
Closes GH-4991
2019-12-11 13:49:16 +01:00
Nikita Popov 33648585d6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78903: Conflict in RTD key for closures results in crash
2019-12-11 13:08:12 +01:00
Nikita Popov 05e6a11b5b Remove ZEND_PARSE_PARAMS_QUIET from spl_autoload_register() 2019-12-11 11:15:02 +01:00
Nikita Popov e2a1dbd502 Merge branch 'PHP-7.4'
* PHP-7.4:
  Free RSA public key in mysqlnd sha256 auth
2019-12-11 10:32:06 +01:00
Dmitry Stogov ee45dbab37 Merge branch 'PHP-7.4'
* PHP-7.4:
  Addirional fix for bug #78918
2019-12-11 12:29:10 +03:00
Tyson Andre 366713d250 Speed up array_intersect/array_diff/array_filter
Use zend_hash_update instead of zend_hash_add.

These are taking a subset of keys from an array with unique keys,
so the result should also have unique keys.
(this is already done for array_map())

Also, speed up array_intersect and array_diff slightly by
using ZEND_HASH_FOREACH macros.
This way, it doesn't need to load the same buckets and array counts
from memory every time (compiler previously couldn't infer they won't change)

```php
<?php
// $n=10000 now takes 0.095 seconds instead of 0.102
function test_bench(int $n) {
    $values = range(0,1000);
    $other = range(0,1000);
    unset($other[500]);
    unset($values[400]);

    $total = 0;
    for ($i = 0; $i < $n; $i++) {
        $total += count(array_intersect_key($values, $other));
    }
    return $total;
}
```
2019-12-10 19:29:49 -05:00
Dmitry Stogov 8fb3ef6e37 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78937 (Preloading unlinkable anonymous class can segfault)
2019-12-11 00:47:15 +03:00
Dmitry Stogov 764c8159b7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix error message
2019-12-10 22:17:42 +03:00
Derick Rethans 4f31bcbf2f Merge branch 'PHP-7.4' 2019-12-10 16:59:09 +00:00
Nikita Popov 725c2a999d Merge branch 'PHP-7.4'
* PHP-7.4:
  Set zend.exception_ignore_args=0 in run-tests.php
2019-12-10 16:16:03 +01:00
Nikita Popov c2d92ad971 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix incorrect zend_try usage
2019-12-10 15:22:46 +01:00
Nikita Popov fa18c115be Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix release build failure
2019-12-10 13:53:19 +01:00
Christoph M. Becker f2dbe4297b Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve error message
2019-12-10 13:20:55 +01:00
Nikita Popov 5cdea8d5e8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add support for class_alias to preloading
  Fixed bug #78935: Check that all linked classes can be preloaded
2019-12-10 13:12:29 +01:00
Máté Kocsis 33f7cabbf0 Promote warnings to exceptions in *scanf() functions 2019-12-10 13:01:59 +01:00
Nikita Popov ea4bb58889 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix merge mistake
2019-12-10 09:04:01 +01:00
Nikita Popov c124d202e2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix DCE with FE_FETCH
2019-12-10 09:01:55 +01:00
Máté Kocsis 9563449d8b Add stubs for another batch of standard functions 2019-12-09 19:47:08 +01:00
Máté Kocsis 16e68ac53a Return false when "Unable to fork" 2019-12-09 19:44:48 +01:00
Máté Kocsis 6f9248359e Throw an exception when an invalid comparison operator is passed to version_compare() 2019-12-09 19:44:01 +01:00
Máté Kocsis b2dc833c1a Only accept string as the format parameter of *printf() functions 2019-12-09 19:43:34 +01:00
ekinhbayar a74484cc98 Remove phpdbg README
phpdbg documentation has been moved to PHP manual and the link at the
bottom of this README is dead, so the file can be removed.
2019-12-09 17:32:17 +01:00
Christoph M. Becker 8060a8507f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78912: INTL Support for accounting format
2019-12-09 16:35:45 +01:00
Nikita Popov aaa0a80636 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix build
2019-12-09 16:06:37 +01:00
Dmitry Stogov b1577f5a57 Merge branch 'PHP-7.4'
* PHP-7.4:
  Export zend_init_func_run_time_cache()
2019-12-09 15:58:19 +03:00
Dmitry Stogov 62826e95d2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Call zend_unregister_ini_entries() when unload extension loaded through dl() without MSHUTDOWN callback. Extensions with MSHUTDOWN should use UNREGISTER_INI_ENTRIES().
2019-12-09 15:07:39 +03:00
Dmitry Stogov 796d11c942 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78895 (Reflection detects abstract non-static class as abstract static. IS_IMPLICIT_ABSTRACT is not longer used)
2019-12-09 13:50:43 +03:00
Christoph M. Becker a776069ea8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Extend CURLFile to support streams
  Use curl_mime_*() functions if available
2019-12-09 10:32:53 +01:00
Nikita Popov 8b1b68d3ba Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78926: Handle class table reallocation on failed link
2019-12-09 09:16:48 +01:00
Nikita Popov 8988c49bb3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78887: Add upgrading note about get_declared_classes() order

[ci skip]
2019-12-09 08:58:37 +01:00
Nikita Popov 33e39f088a Merge branch 'PHP-7.4'
* PHP-7.4:
  Use unmangled named in property type inheritance error
2019-12-09 08:49:42 +01:00
Nikita Popov ded87a9ea0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78904: Don't call any magic for uninitialized typed properties
2019-12-09 08:42:34 +01:00
George Peter Banyard 734932ecbb Convert warnings to ValueError 2019-12-08 21:03:14 +01:00
George Peter Banyard 761e8c7707 Remove dead commented code and dead code in-between KALLE_0 ifdefs.
Closes GH-4986
2019-12-08 20:21:40 +01:00
George Peter Banyard eaaf14ea09 Add type error on filename which contain null bytes in bzopen 2019-12-08 20:19:32 +01:00
Jakub Zelenka d98df5b6c6 Merge branch 'PHP-7.4' 2019-12-08 17:58:59 +00:00
George Peter Banyard 2741476838 Add type error on filename which contain null bytes in bzopen 2019-12-08 15:06:59 +01:00
Christoph M. Becker 4daa680512 Drop duplicate definitions of zend_isnan and friends
Following up on commit 1c4ad17[1], we remove these definitions from
zend_config.w32.h, since they would be overridden by those in
zend_portability.h anyway.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=1c4ad17cc1e483201a36b027f20aab1f91d19628>
2019-12-08 14:55:26 +01:00
Christoph M. Becker 2ede8db1b4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78923: Artifacts when convoluting image with transparency
2019-12-07 12:09:16 +01:00
Christoph M. Becker 1d69bf187f Fix compiler warning
This cast is already done for all other _aliases, but this one has
apparently been missed so far.
2019-12-06 16:50:28 +01:00
Dmitry Stogov ebf35cc8e8 Fixed operation with result in CPU register 2019-12-06 17:16:46 +03:00
Nikita Popov aed2bf7ab3 Remove unused function 2019-12-06 14:18:52 +01:00
Nikita Popov 0bac785477 Optimize return type checking
Split off the fast-path case and avoid redundant checks.
2019-12-06 14:17:03 +01:00
Dmitry Stogov 990b556761 Use cheaper code for overflow +/-1 2019-12-06 14:04:58 +03:00
Nikita Popov 9554fb3498 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix constant evaluation of && and ||
2019-12-06 11:11:12 +01:00
Nikita Popov 8853599514 Try to restore laravel & symfony community jobs
Patch Doctrine to fix the PDOConnection::query() signature.
2019-12-06 07:56:39 +01:00
Nikita Popov 8f62151ec8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix intermittent error in pdo_mysql___construct_options.phpt
2019-12-06 07:40:01 +01:00
Nikita Popov 4a5e17f9af Restore PDOStatement::setFetchMode() signature
I don't think this is worth the BC break, and getting variadic
signature changes compatible across PHP versions is somewhat tricky.
2019-12-06 07:18:11 +01:00
Nikita Popov e0a8c7a8d0 Remove CV limitation when determining value from type in SCCP
As far as I can determine, this is no longer a problem: We will
not try to remove the defining instructions (this is only done if
the value is known by SCCP itself) and we also only determine
non-refcounted values in this way, so it is not a problem if the
FREE is omitted.
2019-12-05 15:26:16 +01:00
Nikita Popov 9e403d65d8 Add DCE support for ARRAY_KEY_EXISTS 2019-12-05 14:55:22 +01:00
George Peter Banyard 1c4ad17cc1 Move isinf, isnan, and isfinite to zend_portability.h
Closes GH-4966
2019-12-05 14:27:51 +01:00
George Peter Banyard f03d311f1a Capitalize first character of error message. 2019-12-05 14:22:53 +01:00
George Peter Banyard 5fbd49f9ab Convert Errors to ValueErrors
Closes GH-4930
2019-12-05 14:22:54 +01:00
Máté Kocsis 73730eebca Add upgrading notes about removed functionality that were deprecated in PHP 7.4 2019-12-05 13:15:55 +01:00
Máté Kocsis b95da3c75f Remove FILTER_SANITIZE_MAGIC_QUOTES filter 2019-12-05 13:15:55 +01:00
Máté Kocsis 29ef07728e Remove magic quotes legacy 2019-12-05 13:15:54 +01:00
Máté Kocsis 633926021b Remove ezmlm_hash() function 2019-12-05 13:15:54 +01:00
Máté Kocsis 144b41ce88 Remove money_format() function 2019-12-05 13:15:54 +01:00
Máté Kocsis 64468d1e3b Remove convert_cyr_string() function 2019-12-05 13:15:54 +01:00
Máté Kocsis b63c625260 Remove hebrevc() function 2019-12-05 13:15:54 +01:00
Máté Kocsis d2868edae0 Capitalize the initial letter of the error message of htmlspecialchars() function 2019-12-05 13:15:53 +01:00
Nikita Popov a603c06e2e Support "string or array" in zpp
This is one of our more common argument unions. Usage is just
prototyped in a few places, certainly not a full conversion.

I'm removing the str_replace.phpt test, because aparently it was
split up into smaller tests at some point, but the original has
not been removed.

Closes GH-4970.
2019-12-05 12:25:57 +01:00
Nikita Popov cec7bd58f8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix timeout tests
2019-12-05 11:19:27 +01:00
Nikita Popov 6894cbe042 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix mysqli ssl tests
2019-12-05 08:39:16 +01:00
Máté Kocsis 5898e8ef3c Promote warning to exception in file_get_contents() function 2019-12-05 08:32:29 +01:00
Máté Kocsis ad4d6634f4 Promote warnings to exceptions in settype() function 2019-12-05 08:31:43 +01:00
Máté Kocsis 04deb532f0 Promote warning to exception in log() function 2019-12-05 08:30:47 +01:00
Tyson Andre 616ec2dd98 Update/fix remaining opcache zend_func_info.c signatures
See UPGRADING:

> . The GD extension now uses objects as the underlying data structure for
>   images, rather than resources. These objects are completely opaque, i.e.
>   they don't have any methods.

Remove types which are no longer in Reflection due to throwing instead of
emitting warnings.
Remove entries where reference counts are 0 and types are duplicated.

Closes GH-4967.
2019-12-05 07:29:03 +01:00
Nikita Popov af301be4ef Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78823: add zlib library to mysqlnd
2019-12-05 07:25:26 +01:00
Tyson Andre 21d326adee Merge branch 'reflection-fixes' into HEAD 2019-12-04 19:12:28 -05:00
Tyson Andre 96d2b69653 Remove opcache signatures duplicating reflection
None of these are refcounted.
2019-12-04 09:50:24 -05:00
Tyson Andre 1142f0c4a5 Make more opcache signatures consistent with reflection 2019-12-04 09:40:42 -05:00
George Peter Banyard 92d5a2e48c Remove obsolete configure checks for isinf, isnan, and isfinite 2019-12-04 15:17:57 +01:00
George Peter Banyard 4845c3f11d Remove configure checks for asinh, acosh, atanh, log1p, hypot 2019-12-04 14:57:11 +01:00
George Peter Banyard 039d678fdf Remove now obsolete configure checks for INFINITY and NAN. 2019-12-04 13:50:10 +01:00
George Peter Banyard 67f85573c5 Remove custom implementation for inifinity and NAN as we can now rely on C99
Those ZEND_* constant variant are now identical to their C counterpart, we may considering removing them in the future.
2019-12-04 13:17:20 +01:00
George Peter Banyard 2d0b0d6448 Remove unnecessary C99 checks for maths functions 2019-12-04 12:14:22 +01:00
Nikita Popov 7577e79e69 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix AST printing of nullable builtin types
2019-12-04 11:21:34 +01:00
Nikita Popov a6832caac9 Fix incorrect assertion in property type variance check
Only one of the status has to be UNRESOLVED, the other could also
be SUCCESS.

Fixes oss-fuzz #19108 and oss-fuzz #19111.
2019-12-04 11:07:22 +01:00
Nikita Popov 7b34e30b9a Merge branch 'PHP-7.4'
* PHP-7.4:
  Preload: Better reason message for internal parents on windows
2019-12-04 09:53:08 +01:00
Nikita Popov a298bde9fb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78898
2019-12-04 09:41:51 +01:00
Nikita Popov 7b7115c4c4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add ReflectionMethod::getClosure() change to UPGRADING

[ci skip]
2019-12-04 08:08:40 +01:00
Tyson Andre 0dbc24c3fa Fix other incorrect opcache types
Closes GH-4959.
2019-12-04 07:40:25 +01:00
Tyson Andre 5624d2eb00 Make some opcache types consistent with reflection information
Remove functions such as filter_id() where reference counts and types are
identical to what's in opcache.

Remove null types from zend_func_info.c that aren't in Reflection
(php would throw now)

Fix the Reflection type information for assert_options()

    php > assert_options(ASSERT_CALLBACK, static function() {});
    php > var_export(assert_options(ASSERT_CALLBACK));
    Closure::__set_state(array(
    ))

Closes GH-4958.
2019-12-04 07:31:06 +01:00
Nikita Popov 8dead642fe Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix print_r return types in opcache
2019-12-04 07:17:18 +01:00
Christoph M. Becker f68d2e9c3c Merge branch 'PHP-7.4'
* PHP-7.4:
  Next is 7.3.14
2019-12-03 12:09:47 +01:00
Remi Collet ecffa83556 Merge branch 'PHP-7.4'
* PHP-7.4:
  next is 7.2.27
2019-12-03 11:26:36 +01:00
Christoph M. Becker c1a6f2b9cc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78883: fgets(STDIN) fails on Windows
2019-12-02 16:53:35 +01:00
Christoph M. Becker 8a5601a364 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78814: strip_tags allows / in tag name => whitelist bypass
2019-12-02 11:39:58 +01:00
Christoph M. Becker b07c76059d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78296: is_file fails to detect file
2019-12-02 11:30:23 +01:00
Christoph M. Becker 0dba3a8e43 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78833: Integer overflow in pack causes out-of-bound access
2019-12-02 11:21:37 +01:00
Adam Saponara b35acd30f2 Fix misleading error message in ZendAccelerator.c.
Currently this error emits something like...

`Error Cannot kill process 12345: Success!`

...due to calling `time` before `strerror` which clears `errno`. This
patch adds an error log immediately after both `kill` calls which gives
us better indication of what exactly failed.
2019-12-02 10:06:32 +01:00
Jakub Zelenka 2a742546bf Merge branch 'PHP-7.4' 2019-12-01 17:17:30 +00:00
Lucas Martín c0e049656c Fix typo in xmm15 register 2019-12-01 12:28:19 +01:00
Stanislav Malyshev 0292d23bb0 Add fuzzing badge to README 2019-11-30 15:56:38 -08:00
Christoph M. Becker b78885b6da Merge branch 'PHP-7.4'
* PHP-7.4:
  Upgrade to Oniguruma 6.9.4
2019-11-30 14:02:14 +01:00
Christoph M. Becker ce5a403b46 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing skip checks
2019-11-29 23:52:52 +01:00
Christoph M. Becker cafa22aa58 Merge branch 'PHP-7.4'
* PHP-7.4:
  Partially revert "Adapt test cases for Oniguruma 6.9.4"
2019-11-29 23:42:48 +01:00
Dmitry Stogov f8f48ce8f5 Refactor JIT to reduce back-end dependency from SSA representation.
This commit shouldn't change JIT behavior, but it adds asserts, that may catch wrong-cases occasionally passed before.
2019-11-29 19:07:17 +03:00
Christoph M. Becker bf6c2932f4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Adapt test cases for Oniguruma 6.9.4
2019-11-29 17:01:11 +01:00
Dmitry Stogov 3360d05f30 Don't keep QM_ASSIGN with IS_UNUSED result 2019-11-29 17:43:36 +03:00
Tyson Andre 67adcc5132 Remove no-op check for 'use strict;'
This should be checking for ZEND_SYMBOL_CLASS, not T_CLASS.

This was first added in 37ac1b96ed
2019-11-28 09:16:15 -05:00
Dmitry Stogov b7241adf5e typos 2019-11-28 13:23:17 +03:00
Dmitry Stogov 36175b3c3d Fixed wrong parameteris order 2019-11-27 16:48:01 +03:00
Dmitry Stogov 40ef3196e0 Fixed register allocation 2019-11-27 16:26:43 +03:00
Christoph M. Becker b7edbbdbbb Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent parallel test conflicts
2019-11-27 14:05:47 +01:00
Dmitry Stogov 249e9a63e8 Fixed JIT for LONG->DOUBLE conversion when optimizer disabled 2019-11-27 14:31:24 +03:00
Christoph M. Becker b6e79f3724 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78840: imploding $GLOBALS crashes
2019-11-27 09:34:57 +01:00
Dmitry Stogov b046a8f7f8 Fixed incorrect JIT compilation 2019-11-26 16:45:19 +03:00
avkarenow 182f98a194 Open opcache.error_log with 'a' flag
When opcache.error_log is set to log to file the read flag is not needed and used.
2019-11-26 09:29:27 +03:00
Christoph M. Becker 0e20220cfc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77638: var_export'ing certain class instances segfaults
2019-11-25 15:58:45 +01:00
Dmitry Stogov 0f2b6ece4e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78868 (Calling __autoload() with incorrect EG(fake_scope) value)
  Consolidate NEWS for 7.4.0 release
  WIP: Merge NEWS
2019-11-25 14:10:53 +03:00
Christoph M. Becker 1de312d9b1 Document the need for merging NEWS sections before x.y.0 2019-11-24 12:19:49 +01:00
Tyson Andre f0484e939a Merge branch 'PHP-7.4' 2019-11-23 10:46:59 -05:00
Tyson Andre 500ba8b2b8 Handle reallocated root buffer during GC destroy phase (v2)
We no longer protect GC during the destroy phase, so we need to
deal with buffer reallocation.

Note that the implementation of spl_SplObjectStorage_free_storage
will call the destructor of SplObjectStorage, and free the instance properties,
which I think is what caused the root buffer to be reallocated.
(`current` is a pointer for an index within the root buffer?)

This fixes bug #78811 for me.

Closes GH-4935
2019-11-23 10:24:48 -05:00
Christoph M. Becker e7e15450ef Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78853: preg_match() may return integer > 1
2019-11-22 19:30:43 +01:00
George Peter Banyard 501a72e354 Promote warning to value error in strpbrk()
Closes GH-4598
2019-11-22 00:36:54 +01:00
George Wang 8a977e07d0 Merge branch 'PHP-7.4' 2019-11-21 17:59:05 -05:00
Christoph M. Becker 424d34d1c0 Make test more resilient
`socket_bind()` may raise `E_WARNING` on failure, which would cause the
test to be marked as borked.  Since we're checking the return value
anyway, we can silence warnings.
2019-11-21 13:40:36 +01:00
Christoph M. Becker b40799efcd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78849: GD build broken with -D SIGNED_COMPARE_SLOW
2019-11-21 10:04:03 +01:00
Adam Harvey a3a9a1e040 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make the UPGRADING note about ArrayObject more explicit.
2019-11-20 15:39:51 -08:00
Tyson Andre f7c44ef2a0 Make opcache infer array_key_exists is non-null bool
array_key_exists now throws a TypeError instead of returning null
for invalid arguments after 14bdb0cfc7
2019-11-20 00:11:51 +03:00
Fabien Villepinte e2a8cc0114 Fix typo with msgfmt_parse_message() 2019-11-19 19:48:13 +01:00
Craig Duncan e208d236b3 Convert apache2handler arginfo to php stubs 2019-11-18 15:07:04 +01:00
Michael Voříšek 7a5dbcd660 Remove clearstatcache function prototype defned twice 2019-11-18 14:36:10 +01:00
Fabien Villepinte f67b27fac6 Fix typo in pcntl_sigwaitinfo proto 2019-11-18 12:53:36 +01:00
Christoph M. Becker c58b44f34a Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-11-18 12:49:28 +01:00
Fabien Villepinte 2adb1bba17 Fix proto of forward_static_call_array
Closes GH-4928.
2019-11-18 12:46:05 +01:00
Máté Kocsis c58b12334d Add union return types with one class 2019-11-18 12:44:38 +01:00
Máté Kocsis 100552d4b5 Add stubs for PDO 2019-11-18 12:38:10 +01:00
Craig Duncan a9e8cd2b6b Convert the example skeleton extension to use arginfo stubs 2019-11-18 11:41:24 +01:00
Tyson Andre 7901913b83 Speed up foreach/FE_FREE (optimize for arrays without gc)
In the case where there are still references to an array being iterated
over when the iterator is freed (or the array is not reference counted):

- There's need to save the opline.
- There's no need to check for exceptions.

```
// Before: 0.404 seconds
// After:  0.362 seconds
// loop_iter_empty(1000, 5000);
function loop_iter_empty(int $a, int $b) {
  $values = array_fill(0, $b, []);
  $total = 0;
  for ($i = 0; $i < $b; $i++) {
      foreach ($values as $v) {
          foreach ($v as $x) {
              $total += $x;
          }
      }
  }
  return $total;
}
```
2019-11-18 11:54:35 +03:00
Dmitry Stogov 8bf663d3b2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix $x = (bool)$x; for undefined with opcache
2019-11-18 11:29:38 +03:00
Jakub Zelenka f826bbde93 Merge branch 'PHP-7.4' 2019-11-17 14:53:53 +00:00
Christoph M. Becker 5b9725e555 Add missing zend_parse_parameters_none() 2019-11-16 18:20:39 +01:00
Máté Kocsis 65db340ae7 Add stubs for the Locale component of Intl 2019-11-16 18:15:03 +01:00
Nikita Popov 292a1aeb59 Support union types for args in gen stubs
Using this requires care! The zpp implementation for this union
must be consistent with the arginfo implementation!

Apart from array|object, this is probably only the case for
int|float right now.
2019-11-15 17:33:37 +01:00
Nikita Popov 0cec268d15 Support single class unions in gen stubs 2019-11-15 17:19:26 +01:00
Nikita Popov 468ecf295d Fix DateTimeImmutable stubs
These were referencing the arginfo from the functions, instead of
the methods, which isn't right, as the functions have return types.
2019-11-15 16:02:26 +01:00
Nikita Popov 9899fdc454 Merge branch 'PHP-7.4'
* PHP-7.4:
  Handle reallocated root buffer during GC destroy phase
  Zend Engine version is no longer in -dev
2019-11-15 15:54:46 +01:00
Tyson Andre a7580899f3 Support the same handler for multiple opcodes 2019-11-15 17:37:01 +03:00
Tyson Andre e8525c2f68 Optimize int === int/double === double
Do this by reusing the implementation used for `==`
when both arguments are ints (IS_LONG) or both are floats (IS_DOUBLE)

```php
// Before: nestedloop_ni took 0.442 seconds
// After: nestedloop_ni takes 0.401 seconds (same as nestedloop_ne)
function nestedloop_ni(int $k) {
  $x = 0;
  for ($i=0; $i < 50000000; $i++) {
    if ($i === $k) {
      $x++;
    }
  }
  print "$x\n";
}
function nestedloop_ne(int $k) {
  $x = 0;
  for ($i=0; $i < 50000000; $i++) {
    if ($i == $k) {
        $x++;
    }
  }
  print "$x\n";
}
```
2019-11-15 17:37:01 +03:00
Derick Rethans 17a021e228 Merge branch 'PHP-7.4' 2019-11-15 14:22:41 +00:00
Nikita Popov 40dcf2bd3d password_hash() can't return false 2019-11-15 12:43:57 +01:00
Nikita Popov bb41a1b7e7 Fix str_pad rc info
This fixes at least part of bug #78811.
2019-11-15 12:37:24 +01:00
Nikita Popov 716fdacdd1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78810
2019-11-15 12:08:55 +01:00
Christoph M. Becker 03b7833558 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix ASLR related invalid opline handler issues
2019-11-15 09:48:02 +01:00
Christoph M. Becker 2de79f0855 Make the $num_points parameter of php_imagepolygon optional
That parameter is mostly useless in practise, and likely has been
directly ported from the underlying `gdImagePolygon()` and friends,
which require that parameter since the number of elements of the point
array would otherwise be unknown.  Typical usages of `imagepolygon()`,
`imageopenpolygon()` and `imagefilledpolygon()` pass `count($points)/2`
or hard-code this value as literal.  Since explicitly specifying this
parameter is annoying and error-prone, we offer the possibility to omit
it, in which case the `$points` array must have an even number of
elements, and the number of points is calculated as `count($points)/2`.
2019-11-15 09:41:10 +01:00
Fabien Villepinte d65e59de9b Merge branch 'PHP-7.4' 2019-11-13 21:15:59 +01:00
Dmitry Stogov 36afe4e39e Optimize $x === null into is_null($x) 2019-11-12 13:49:55 +03:00
Dmitry Stogov bd45881014 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed wrong constant usage
2019-11-12 13:00:37 +03:00
Dmitry Stogov 32274d81a1 Merge branch 'PHP-7.4'
* PHP-7.4:
  ws
2019-11-12 10:52:09 +03:00
Dmitry Stogov d94c27dcca Fixed JIT for TYPE_CHECK opcode (exception handling in case of undefined argument) 2019-11-12 10:42:29 +03:00
Tyson Andre 937fa6d9e2 Optimize is_scalar($x) into a TYPE_CHECK opcode
Optimizations such as specializations for is_resource were first added in
dfb4f6b38d9efedafab7d2d98b9333715561256

I don't see any mention of is_scalar (and optimizing it) in the commit history,
or in prior PRs on github, or searching for is_scalar in externals.io
2019-11-12 10:17:10 +03:00
Stanislav Malyshev ad0a3f2886 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78804 - Segmentation fault in Locale::filterMatches
2019-11-11 23:08:52 -08:00
Christoph M. Becker 735c4cab74 Make test more resilient
`socket_bind()` may raise `E_WARNING` on failure, which would cause the
test to fail.
2019-11-11 18:08:54 +01:00
Christoph M. Becker 8c5ca24e11 Fix clean section of test case 2019-11-11 15:57:42 +01:00
Christoph M. Becker dccd137e1a iconv_strlen() cannot return a string 2019-11-11 15:40:59 +01:00
Máté Kocsis 27e83d0fb8 Add union return types for function stubs 2019-11-11 14:54:55 +01:00
Christoph M. Becker 2804ea6127 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test case for Windows
2019-11-11 12:56:55 +01:00
Christoph M. Becker 0a33536526 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test cases which fail on Windows debug builds
2019-11-11 12:34:50 +01:00
Christoph M. Becker adcc35916a Properly declare methods
While declaring methods with `PHP_FALIAS` kind of works, it is
semantically confusing, and also doesn't allow to specify access flags.
2019-11-11 10:58:21 +01:00
Dmitry Stogov 6e9dd13d63 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78714 (funcs returning pointer can't use call convention spec)
2019-11-11 12:09:47 +03:00
Christoph M. Becker b0391c3e26 Revert "Fix #78790: mysqli_get_client_info() expects exactly 0 parameters"
This reverts commit 87fad8cdf0, since,
apparently, `mysqli_get_client_info()` is also supposed to be called
without argument.
2019-11-11 10:06:21 +01:00
Christoph M. Becker 87fad8cdf0 Fix #78790: mysqli_get_client_info() expects exactly 0 parameters
`mysqli_get_client_info()` and `mysqli_thread_safe()` can also be
called as methods, so we have to cater to this when parsing the
arguments.
2019-11-11 10:01:17 +01:00
Benjamin Eberlei 3b34c4fa12 Merge branch 'DomFaliasCleanup' 2019-11-09 21:30:25 +01:00
Benjamin Eberlei f905a81979 ext/dom: Replace usages of PHP_FUNCTION and aliases with PHP_METHOD. 2019-11-09 21:29:42 +01:00
Benjamin Eberlei ee80567a83 Merge branch 'dom-arginfo-stubs' 2019-11-09 15:16:09 +01:00
Fabien Villepinte 1240c122a1 Merge branch 'PHP-7.4' 2019-11-09 13:56:23 +01:00
Fabien Villepinte 4d529757f8 Merge branch 'PHP-7.4' 2019-11-08 20:36:55 +01:00
Nikita Popov 9bbbc9e7e9 Add support for union types in stubs
This is the MVP for supporting union types in PHP stubs. Return
types with only builtin types work, which is the part we mainly
need.

Closes GH-4895.
2019-11-08 17:32:18 +01:00
Tyson Andre 70b4bc963c Fix compile error using zend_parse_parameters_throw()
Fixes a bug introduced in 4008704f62

The trailing comma is followed by `)` when the varargs list
is empty in the macro, which is a syntax error in C

This fixes compilation of code such as the following

    PHP_FUNCTION(get_metadata) {
      if (zend_parse_parameters_throw(ZEND_NUM_ARGS(), "") == FAILURE) {
        return;
      }

Closes GH-4896.
2019-11-08 16:29:10 +01:00
Levi Morrison 1cb69c44d7 Merge branch 'PHP-7.4' 2019-11-08 08:04:52 -07:00
Nikita Popov 999e32b65a Implement union types
According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same time. Additionall, zend_type_list is
introduced as a new kind of pointer payload, which is used to store
multiple class types. Each of the class types is a tagged pointer,
which may be either a class name or class entry. The latter is only
used for typed properties, while arguments/returns will instead use
cache slots. A type list can contain a mix of both names and CEs at
the same time, as not all classes may be resolvable.

One thing this is missing is support for union types in arginfo
and stubs, which I want to handle separately.

I've also dropped the special object code from the JIT implementation
for now -- I plan to add this back in a different form at a later time.
For now I did not want to include non-trivial JIT changes together
with large functional changes.

Another possible piece of follow-up work is to implement "iterable"
as an internal alias for "array|Traversable". I believe this will
eliminate quite a few special-cases that had to be implemented.

Closes GH-4838.
2019-11-08 15:15:48 +01:00
Nikita Popov ac4e0f0852 Make zend_type a 2-field struct
We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

To avoid increasing the size of arginfo structures, the
pass_by_reference and is_variadic fields are now stored as part of
the type_mask (8-bit are reserved for custom use).

Different types of pointer payloads are distinguished based on bits
in the type_mask.
2019-11-08 15:15:48 +01:00
Benjamin Eberlei 4253ca486d Convert ext/dom to use arginfo stub. 2019-11-08 15:05:35 +01:00
Fabien Villepinte a555cc0b3d Clean DONE tags from tests
Remove most of the `===DONE===` tags and its variations.
Keep `===DONE===` if the test output otherwise becomes empty.

Closes GH-4872.
2019-11-07 21:31:47 +01:00
Nikita Popov 80cfd99074 Reduce reallocations in exif parsing
Instead of reallocating lists element by element, increase the
allocated list size exponentially.
2019-11-07 21:20:34 +01:00
Nikita Popov 11649a6d77 Reduce size limit in parser fuzzer
Avoid stack overflows during compilation of deeply nested
expressions.
2019-11-07 21:20:34 +01:00
Máté Kocsis ab6b412a0b Add stubs for standard lib functions 2019-11-07 17:59:03 +01:00
Máté Kocsis afe4a879c7 Promote register_tick_function() callback validation warning to an exception 2019-11-07 17:56:58 +01:00
Máté Kocsis 662afc80f8 Remove PHP_SLEEP_NON_VOID as it is not useful anymore 2019-11-07 17:56:26 +01:00
Nikita Popov e710862f8c Add compile warning for "confusable" types
We have a number of "types" like integer which are not actually
supported as builtin types -- instead they are silently interpreted
as class types.

I've seen this cause confusion a few types already. This change adds
a warning in this case. In the unlikely case that someone legitimately
wants to type against an integer class, the warning can be suppressed
by writing \integer or "use integer", or using Integer (this warning
will only trigger for lowercase spellings).

Closes GH-4815.
2019-11-07 15:05:08 +01:00
Nikita Popov a573862676 Merge branch 'PHP-7.4'
* PHP-7.4:
  Wrap hrtime in `extern "c" {}`
2019-11-07 14:42:16 +01:00
Nikita Popov ea6d22cfad Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix php_pcre_mutex_free()
2019-11-07 14:32:03 +01:00
Nikita Popov e9bdb5cd08 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove outdated comments in test
2019-11-07 14:06:53 +01:00
Nikita Popov cb03bbbf60 Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable ifunc resolvers under thread sanitizer as well
2019-11-07 13:11:58 +01:00
Nikita Popov bae312d040 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add UPGRADING note about default object from empty value

[ci skip]
2019-11-07 11:48:52 +01:00
Nikita Popov 0027ad4801 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78759
2019-11-07 11:17:38 +01:00
Christoph M. Becker 34dda406bd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78788: ./configure generates invalid php_version.h
2019-11-07 10:01:43 +01:00
Nikita Popov b312598daf Move extra checks after zpp in get_browser() 2019-11-06 17:50:48 +01:00
Nikita Popov 34ea5b0585 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove bogus skipifs in get_browser tests
2019-11-06 17:50:20 +01:00
Máté Kocsis 14bdb0cfc7 Fix consistency issues with array accesses warnings/exceptions
* Change a number of "resource used as offset" notices to warnings,
   which were previously missed.
 * Throw the "resource used as offset" warning for isset() as well.
 * Make array_key_exists() behavior with regard to different key
   types consistent with isset() and normal array accesses. All key
   types now use the usual coercions and array/object keys throw
   TypeError.

Closes GH-4887.
2019-11-06 12:56:47 +01:00
Nikita Popov 0b0d4eb0eb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78787
2019-11-06 12:53:29 +01:00
Christoph M. Becker abc382e885 Merge branch 'PHP-7.4'
* PHP-7.4:
  7.3.13 is next
2019-11-05 18:25:39 +01:00
Sara Golemon f8de6309bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump for 7.2.26-dev
2019-11-05 10:59:04 -05:00
Nikita Popov c849438bd0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78775
2019-11-05 12:16:17 +01:00
Christoph M. Becker 22725639cc Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove obsolete oniguruma.patch
2019-11-05 10:19:06 +01:00
Nikita Popov 56cee36374 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead code `ext/mysqlnd/mysqlnd_net.c`.
2019-11-04 21:36:36 +01:00
Máté Kocsis 6d0366ad08 Add stubs for IntlTimeZone 2019-11-04 14:10:01 +01:00
Fabien Villepinte 42692d45f5 Merge branch 'PHP-7.4' 2019-11-04 13:56:18 +01:00
Nikita Popov c46b2ed677 Remove support for array_key_exists() with objects 2019-11-04 13:10:03 +01:00
Christoph M. Becker 31f1254182 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make test more robust
2019-11-04 12:23:00 +01:00
Nikita Popov b509d67554 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Remove configure checks for supported instruction sets"
2019-11-04 11:34:02 +01:00
Nikita Popov 5b447d4b42 Remove dead code related to inherits props in reflection
Public/protected properties defined in parent classes will be
inherited in the child -- there is no need to explicitly try to
walk up the chain and look them up.
2019-11-04 11:24:32 +01:00
Nikita Popov 0e3045ae69 Store pointer to property_info in reflection
Instead of constructing a dummy property_info for dynamic properties,
leave the field as NULL and handle this as appropriate.

This was originally part of an alternative fix for bug #78774, but
I think doing it this way is generally preferrable independently
of that.
2019-11-04 11:08:19 +01:00
Nikita Popov 7f9e7399d3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78774
2019-11-04 11:04:11 +01:00
Christoph M. Becker 7d96dcac2c Fix #55005: imagepolygon num_points requirement
We actually have to check `$num_points` instead of `2*count($points)`,
because the latter may be greater than the former, but not all elements
of `$points` are guaranteed to be used.  This allowed to pass arrays
with excess elements to draw polygons with less than three vertices.

While the current implementation of `gdImagePolygon()` and friends
would allow us to draw monogons and digons, we don't allow that
anymore, because the respective drawing primitives work slightly
different (e.g. drawing lines support anti-aliasing, but drawing
general polygons does not).

To minimize the BC break, we do not fix this longstanding issue for PHP
7, but target PHP 8 only.
2019-11-02 14:05:01 +01:00
Christoph M. Becker 4d067d811d Add ext/phar arginfo stubs 2019-11-02 11:55:11 +01:00
Nikita Popov 991a0250b5 Reduce oniguruma retry limit in fuzzer
For some patterns matching may take quite long even at retry limit
100000 and it seems that this is not easy to fix on the oniguruma
side.

Reduce the retry limit by another factor of 10 in hope of reducing
timeouts.
2019-11-02 10:40:41 +01:00
Christoph M. Becker 21eddde3fd Merge branch 'PHP-7.4'
* PHP-7.4:
  Print Client Library Version in phpinfo
2019-11-02 10:19:56 +01:00
Nikita Popov dde2bcb556 Merge branch 'PHP-7.4'
* PHP-7.4:
  Explicitly specify ubuntu versions on azure pipelines
2019-11-02 10:13:07 +01:00
Christoph M. Becker 88bab00199 Remove unused code
These are left-overs from image2wbmp(), which has already been removed.
2019-11-02 00:10:46 +01:00
Christoph M. Becker 34defbb784 Accept int parameter in the first place
This is more liberal then before, where that parameter (if given) had
to be IS_LONG, while now it would be converted to int according to weak
typing rules.  This is, however, more what a developer would expect.
2019-11-01 19:15:48 +01:00
Máté Kocsis f19950fea0 Promote some warnings to exceptions in standard lib
Closes GH-4879.
2019-11-01 17:07:51 +01:00
Nikita Popov 11ce417215 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78768
2019-11-01 17:04:59 +01:00
Nikita Popov 5ca46572e6 Allow generating stubs for directory 2019-11-01 16:54:20 +01:00
Christoph M. Becker 4008704f62 zend_parse_parameters_throw() is obsolete
Since `zend_parse_parameters()` throws now, there is no reason to
explicitly call `zend_parse_parameters_throw()` anymore, and since both
have actually the same implementation, we redefine the latter as macro.
2019-11-01 16:47:15 +01:00
Máté Kocsis 2204dbde3b Add missing ZPP checks
Closes GH-4878.
2019-11-01 15:26:52 +01:00
Christoph M. Becker 5dd5f1bc4a Finish OpenSSL arginfo stubs 2019-11-01 15:21:28 +01:00
Fabien Villepinte 8ea2be387e Merge branch 'PHP-7.4' 2019-11-01 12:38:32 +01:00
Fabien Villepinte 5955211710 Merge branch 'PHP-7.4' 2019-11-01 12:27:04 +01:00
Cameron Porter 07964fc2b5 pdo_oci: Add support for setting and getting the oracle OCI 18c call timeout value. 2019-11-01 10:36:55 +01:00
Dmitry Stogov 61ebce1f06 Don't skip RECV instuctions when function uses type hints 2019-11-01 09:33:46 +03:00
Christoph M. Becker 32d3dbf789 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test cases for libxml2 2.9.10
2019-10-31 16:10:18 +01:00
Nikita Popov 2f8b766838 Add stubs for WeakReference 2019-10-31 12:17:04 +01:00
Nikita Popov 1517bc4426 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove configure checks for supported instruction sets
2019-10-31 11:34:15 +01:00
Nikita Popov 0b689c163e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77930: Remove mmap limit
2019-10-31 09:37:27 +01:00
Christoph M. Becker 7816df2c57 Elevate warnings to ValueErrors in ext/calendar
All of these warnings/ValueErrors are due to programming errors, i.e.
calling a function with unsupported arguments.
2019-10-31 08:49:15 +01:00
Christoph M. Becker fe13066403 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78761: Zend memory heap corruption with preload and casting
2019-10-30 19:50:22 +01:00
Christoph M. Becker 9b817264eb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78762: Failing FFI::cast() may leak memory
2019-10-30 17:22:56 +01:00
Máté Kocsis 9493893412 Cleanup return values when parameter parsing is unsuccessful 2019-10-30 16:05:20 +01:00
Máté Kocsis 969e7a3c8b Cleanup return values for Intl when parameter parsing is unsuccessful
Closes GH-4871.
2019-10-30 13:21:40 +01:00
Nikita Popov 5cbe5a538c Don't use chunking for stream writes
We're currently splitting up large writes into 8K size chunks, which
adversely affects I/O performance in some cases. Splitting up writes
doesn't make a lot of sense, as we already must have a backing buffer,
so there is no memory/performance tradeoff to be made here.

This change disables the write chunking at the stream layer, but
retains the current retry loop for partial writes. In particular
network writes will typically only write part of the data for large
writes, so we need to keep the retry loop to preserve backwards
compatibility.

If issues due to this change turn up, chunking should be reintroduced
at lower levels where it is needed to avoid issues for specific streams,
rather than unnecessarily enforcing it for all streams.
2019-10-30 13:03:45 +01:00
Nikita Popov f9ab339c0f Merge branch 'PHP-7.4'
* PHP-7.4:
  Add UPGRADING note for stream_read() change

[ci skip]
2019-10-30 11:32:16 +01:00
Rimvydas ZilinskasandChristoph M. Becker e4593c51ff Add more openssl stubs
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
2019-10-30 11:20:48 +01:00
Nikita Popov 9241037837 Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimize creation of empty arrays in json_decode
2019-10-30 11:06:59 +01:00
Nikita Popov e0a401335d Make "unterminated comment" into a parse error 2019-10-30 11:00:27 +01:00
Nikita Popov 93ba3abe63 Warn on strtr(["" => "x"])
Previously:
 * If only ["" => "x"] was present, the original string was returned
   without warning.
 * If both ["" => "x"] and at least one more element was present,
   false was returned without warning.

New behavior:
 * Ignore "" keys in the replacement array (and perform any remaining
   replacement).
 * Throw a warning indicating that an empty string replacement has
   been ignored.

Closes GH-4792.
2019-10-30 10:53:45 +01:00
Nikita Popov becda2e041 Promote mt_rand() min/max warning to ValueError 2019-10-30 10:36:42 +01:00
Máté Kocsis ad9ea5abde Add stubs for various standard functions
Closes GH-4851.
2019-10-30 10:34:06 +01:00
Nikita Popov e0be51d082 Use ArgumentCountError in IntlGregorianCalendar ctor 2019-10-30 10:27:52 +01:00
Tyson Andre 96f361dca0 Update documentation/comment for GH-4860
Fix folding for the new helper method.

Clarify comment in UPGRADING:
The performance on associative arrays would also improve,
as long as no offsets were unset (no gaps).
Packed arrays can have gaps.

Closes GH-4873.
[ci skip]
2019-10-30 10:26:56 +01:00
Máté Kocsis fee94da127 Add stubs for directory and file functions 2019-10-30 10:10:40 +01:00
Nikita Popov aef8836110 Don't check $this existence in object opcodes
We are now guaranteed that $this always exists inside methods, as
well as insides closures (if they use $this at all).

This removes checks for $this existence from the individual object
opcodes. Instead ZEND_FETCH_THIS is used in the cases where $this
is not guaranteed to exist, which is mainly the pseudo-main scope.

Closes GH-3822.
2019-10-30 09:30:13 +01:00
Nikita Popov 776f4bc680 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing refcount increment
2019-10-30 09:23:23 +01:00
Nikita Popov ad53bacf38 Fix bug #78681 by renaming libphp8.so to libphp.so
The major version number is no longer included.
2019-10-29 16:06:09 +01:00
Christoph M. Becker 64685782e4 Allow to call XMLReader::open() and ::XML() statically
The implementation of `XMLReader::open()` and `XMLReader::XML()` still
supports calling the methods statically and non-statically.  However,
as of PHP 8.0.0, calling these methods statically is not allowed,
because they are not declared as static methods.  Since we consider it
to be cleaner to call these methods statically, but had deprecated to
call them statically, we properly support both variants.

We implement support for static and non-static calls by overloading, so
that non-static calls have access to the `$this` pointer.
2019-10-29 15:58:32 +01:00
Nikita Popov 4963701aa4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78689
2019-10-29 15:08:03 +01:00
Nikita Popov 817fbe8186 Remove some RETURN_FALSE on exception 2019-10-29 13:36:03 +01:00
Nikita Popov 6719d3e718 Add Z_PARAM_STRING/ARRAY_OR_NULL convenience macros 2019-10-29 13:29:52 +01:00
Nikita Popov 63a20cb400 Don't accept objects for options in password_hash()
This was likely a mixup of zpp modifiers in the original implementation.
Per the RFC only arrays should be accepted here.
2019-10-29 13:20:22 +01:00
Nikita Popov c43179fb6b Promote base_convert "invalid base" errors to ValueError 2019-10-29 13:12:37 +01:00
Nikita Popov 26327bcd3b Throw "Unsupported operand types" error when using ** on arrays 2019-10-29 13:05:02 +01:00
Nikita Popov 8f20b9969f Expect number argument in round() 2019-10-29 12:50:29 +01:00
Craig Duncan 1d631c18de Convert phpdbg arginfo to php stubs
Closes GH-4867.
2019-10-29 11:39:58 +01:00
Nikita Popov 1c9cbc911d Small phpdbg cleanups
Add a zpp_none() call, convert E_ERROR to ValueError.
2019-10-29 11:39:02 +01:00
Nikita Popov 504f7ffdd6 Small ext/dom cleanups 2019-10-29 11:16:23 +01:00
Christoph M. Becker 312ecc69d5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test case on non Windows platforms
2019-10-29 10:07:22 +01:00
Nikita Popov 39897eb80b Try to fix asan warning in scalar_constant_defaults.phpt
Doing the SAVE_VALID_OPLINE right before the call, because we
still need r0 before that.
2019-10-29 10:01:35 +01:00
Derick Rethans 726989433a Merge branch 'PHP-7.4' 2019-10-29 09:00:45 +00:00
Christoph M. Becker 657f7e898d Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test case on non Windows platforms
2019-10-29 09:57:27 +01:00
Christoph M. Becker c5e1a0454f Skip test case on non Windows platforms 2019-10-29 09:53:44 +01:00
Nikita Popov 778a9c05b6 Try to fix 32-bit fprintf test 2019-10-29 09:52:46 +01:00
Christoph M. Becker 3dbb90b07e Fix test cases for master 2019-10-29 09:35:16 +01:00
Christoph M. Becker 6c078d8bd5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Implement #78270: Support __vectorcall convention with FFI
2019-10-29 08:58:17 +01:00
Stanislav Malyshev 39bf35ca87 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix libmagic buffer overflow issue (CVE-2019-18218)
  bump version
  set versions for release
2019-10-28 20:47:57 -07:00
Christoph M. Becker c2f56d0546 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add support for Interbase 1 dialect
2019-10-28 16:41:16 +01:00
Christoph M. Becker b897d19552 Add missing zend_parse_parameters_none()
We fix the trivial cases; some others need further discussion, see
<https://news-web.php.net/php.internals/107723>.
2019-10-28 16:18:15 +01:00
Nikita Popov 87fefd165a Remove ability to unbind $this of closures if used
This was deprecated in PHP 7.4, removing it for PHP 8.0.
2019-10-28 13:24:07 +01:00
Fabien Villepinte 26579db403 Define IS_WINDOWS in the test runner
Avoid code duplication

Closes GH-4866.
2019-10-28 13:14:50 +01:00
Christoph M. Becker f9a98f6dbd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78751: Serialising DatePeriod converts DateTimeImmutable
2019-10-28 13:09:44 +01:00
Christoph M. Becker 84f2a984d4 Elevate warnings to Error Exceptions in ext/bcmath
`bcdiv()` and `bcmod()` throw DivisionByZeroError if the divisor is 0,
which matches the behavior of the `/` and `%` operators, and `bcsqrt()`
throws ValueError for negative operands.
2019-10-28 12:22:31 +01:00
kharhamel 82dc9a31c3 Convert warnings to Errors in sprintf() functions
Closes GH-4837.
2019-10-28 11:58:59 +01:00
Tyson Andre 9d48bf5152 Fix miscellaneous typos in docs and error messages
Closes GH-4863.
2019-10-28 11:44:08 +01:00
Nikita Popov 742aaaa150 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove redundant variable rv and optimize code
2019-10-28 11:42:57 +01:00
Tyson Andre e7ff590d0d Optimize array_slice for packed arrays with large offsets
If the offset is 100000, and there are no gaps in the packed/unpacked array,
then advance the pointer once by 100000,
instead of looping and skipping 100000 times.

Add a new test of array_slice handling unset offsets.

Closes GH-4860.
2019-10-28 11:30:59 +01:00
Nikita Popov 9f98fddb7b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78752
2019-10-28 10:28:24 +01:00
Christoph M. Becker addc78f379 Revert "Add missing zend_parse_parameters_none()"
This reverts commit ef439ec895.
Test failures need to be resolved first.
2019-10-27 13:41:41 +01:00
Christoph M. Becker ef439ec895 Add missing zend_parse_parameters_none() 2019-10-27 13:12:45 +01:00
Nikita Popov 0040b2a958 Merge branch 'PHP-7.4'
* PHP-7.4:
  Try one more FD in ext/standard/tests/file/php_fd_wrapper_04.phpt
2019-10-27 09:36:44 +01:00
Christoph M. Becker 913a449b27 Remove generic type annotations
Cf. <https://github.com/php/php-src/commit/de69a9d3ebad41da9bc7c59f836bb141f0af70f8#r35675846>.
2019-10-26 16:24:53 +02:00
Christoph M. Becker b823864926 Fix and make reflection arginfo stubs more specific 2019-10-26 16:17:02 +02:00
Fabien Villepinte 8a88f72beb Merge branch 'PHP-7.4' 2019-10-26 16:08:00 +02:00
Christoph M. Becker de69a9d3eb Improve reflection arginfo stubs 2019-10-26 12:32:12 +02:00
Thomas Gerbet c9fc076a75 Add stubs for ext-reflection 2019-10-26 12:32:12 +02:00
Nikita Popov 75279b50a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add ARM64 CI to Travis
2019-10-25 16:38:13 +02:00
Nikita Popov e63a44dd03 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78226: Don't call __set() on uninitialized typed properties
2019-10-25 16:32:14 +02:00
Nikita Popov 7d056fc6c0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78747
2019-10-25 12:53:24 +02:00
Nikita Popov 225a02f3d6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimize VERIFY_RETURN_TYPE for TMP operands as well
2019-10-25 11:41:41 +02:00
Nikita Popov 711e2a1216 Merge branch 'PHP-7.4'
* PHP-7.4:
  Check class linking in VERIFY_RETURN_TYPE optimization
  Simplify travis setup scripts
2019-10-25 11:25:49 +02:00
Nikita Popov c858d17f06 Optimize instanceof_function
Split out the simple equality check into an inline function --
this is one of the common cases.

Replace instanceof_function_ex with zend_class_implements_interface.
There are a few more places where it may be used.
2019-10-25 10:51:17 +02:00
Nikita Popov bd7b1afd6e Check type is set when verifying variadic args
Weird that there was no test for this...

This code is somewhat inefficient, because it will be performed
for every arg, rather than only once.
2019-10-25 10:27:45 +02:00
Nikita Popov 296269cfe8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove recursive check from instanceof_interface
2019-10-25 10:20:19 +02:00
Nikita Popov 374cbfe568 Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimize instanceof_class/interface
2019-10-24 17:50:53 +02:00
Nikita Popov 19bea48c9a Merge branch 'PHP-7.4'
* PHP-7.4:
  Clean up and clarify instanceof_function_ex()
2019-10-24 17:42:04 +02:00
Nikita Popov d71a6ee54f Remove unnecessary type checks in verify_missing_return_type
We don't emit VERIFY_RETURN_TYPE for void functions, so there's
no need to check it here. It's always an error.
2019-10-24 15:52:06 +02:00
Nikita Popov 9666d7a753 Don't check ZEND_TYPE_IS_SET() in zend_check_type()
Usually this function is only used if we already know that there is
a type. Add checks to the places where we don't.
2019-10-24 15:41:26 +02:00
Nikita Popov 1f497b3db7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip IntlTimeZone::getOffset() error tests on non-x86
2019-10-24 15:26:24 +02:00
Nikita Popov 45deb01cc2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip large ftruncate test if large files not supported
  Don't test "blocks" in lstat_stat_variation7.phpt
  Increase FD used in php://fd test
  Use posix_getuid() to check for root in pcntl_setpriority() test
2019-10-24 14:47:15 +02:00
Remi Collet 97f994762f Merge branch 'PHP-7.4'
* PHP-7.4:
  typo and better wording
2019-10-24 07:43:56 +02:00
Remi Collet ff09d39328 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added suppot for glob() wildcard matching in ffi.preload directive
  Reverting push to wrong repo
  Update alloc patch
2019-10-24 07:40:27 +02:00
Dmitry Stogov aacea14359 Merge branch 'PHP-7.4'
* PHP-7.4:
  Ignore ZEND_FFI_TYPE_OWNED flag
2019-10-23 19:54:52 +03:00
Nikita Popov 62fcb11cbd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix aarch64 crc32 implementation
2019-10-23 17:42:16 +02:00
Nikita Popov 13e0c5f4c9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't autoload when checking property types
2019-10-23 12:24:01 +02:00
Nikita Popov ae46df0cb9 JIT: Add option to disable SSA checks 2019-10-23 11:25:13 +02:00
Nikita Popov fe6c420b02 JIT: Handle typed refs in assign dim 2019-10-23 11:25:10 +02:00
Colin O'Dell e7335eb420 Allow array_splice() length to be null 2019-10-23 11:22:12 +02:00
Colin O'Dell 80103bdb78 Document the changes to substr functions 2019-10-23 11:22:12 +02:00
Nikita Popov 8efbbcae0c Merge branch 'PHP-7.4'
* PHP-7.4:
  Use ICU's CXXFLAGS when using pkg-config
2019-10-23 11:18:05 +02:00
Nikita Popov bc96e86417 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add "-pthread" to EXTRA_LDFLAGS_PROGRAM as well
2019-10-23 11:07:49 +02:00
Christoph M. Becker f65d42d56c Merge branch 'PHP-7.4'
* PHP-7.4:
  Added missing call to ZipArchive::close()
2019-10-23 10:47:59 +02:00
Nikita Popov ecc309bfb9 JIT: Fix handling of typed ref in assign dim op 2019-10-23 10:08:25 +02:00
Nikita Popov 2f80fbe3ae JIT: Fix handling of typed ref in assign op 2019-10-23 10:08:09 +02:00
Nikita Popov 8cdbcd7d91 JIT: Check exception after jit_assign_dim_op_helper 2019-10-23 10:07:59 +02:00
Nikita Popov 097184cae7 JIT: UNDEF result on "Illegal offset type" exception 2019-10-23 10:07:48 +02:00
Remi Collet 3d9bbd1b53 Merge branch 'PHP-7.4'
* PHP-7.4:
  add new ffi.preload  option in php.ini and display ini entries in MINFO
2019-10-23 07:49:29 +02:00
Christoph M. Becker d04297a899 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
2019-10-22 17:54:28 +02:00
Dmitry Stogov 626a5837c0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow loading FFI bindings through ffi.preload directive
2019-10-22 17:53:24 +03:00
Colin O'Dell e6d3146bdc Accept null lengths for substr functions()
If a null $length is passed to any of these functions, behave as if no
parameter was passed:

 - substr()
 - substr_count()
 - substr_compare()
 - iconv_substr()
2019-10-22 12:09:04 +02:00
Colin O'Dell 8ccd58baca Add Z_PARAM_LONG_OR_NULL macro 2019-10-22 12:09:04 +02:00
Christoph M. Becker c6cdfa967c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78716: Function name mangling is wrong for some parameter types
2019-10-22 11:39:40 +02:00
Nikita Popov 530a8a3854 Fix and undeprecate ReflectionType::__toString()
Add deprecated _ZendTestClass::__toString() method to preserve
an existing test.

ReflectionType::__toString() will now return a complete
representation of the type, as it should have originally. Users
that relied on nullability being absent should have been pushed
to ReflectionNamedType::getName() by the deprecation of
ReflectionType::__toString() in PHP 7.1 / PHP 7.4.
2019-10-22 11:26:02 +02:00
Nikita Popov 1faea28cdd Merge branch 'PHP-7.4'
* PHP-7.4:
  Add a run with opcache to the coverage job
2019-10-22 11:13:02 +02:00
Christoph M. Becker 0ef27dbe8a Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-10-22 09:53:05 +02:00
Remi Collet 3dc62ef8cd Merge branch 'PHP-7.4'
* PHP-7.4:
  add NEWS entry
2019-10-22 09:38:18 +02:00
Stanislav Malyshev 6bef57f2e2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78599 (env_path_info underflow can lead to RCE) (CVE-2019-11043)
  bump versions after release
  set versions for release
2019-10-21 13:17:32 -07:00
Fabien Villepinte 084d401beb Merge branch 'PHP-7.4' 2019-10-21 21:33:30 +02:00
Fabien Villepinte 95390972f1 Merge branch 'PHP-7.4' 2019-10-21 21:17:50 +02:00
Dmitry Stogov 42f4bdba2a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78512 (Cannot make preload work)
2019-10-21 14:53:03 +03:00
Nikita Popov d927b745d6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix static prop cleanup for dl'ed internal classes
2019-10-21 12:17:43 +02:00
Nikita Popov 065d00f241 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix leak with cycle in static prop of internal class
2019-10-21 10:27:35 +02:00
Christoph M. Becker f7c61c070f Add ext/sodium arginfo stubs 2019-10-21 10:19:57 +02:00
Joe Watkins 174ab25fd4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78697: inaccurate error message
2019-10-21 09:25:24 +02:00
Stanislav Malyshev c797ed5cc7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78633: Heap buffer overflow (read) in mb_eregi
2019-10-20 23:20:26 -07:00
Jakub Zelenka 878f8b0b23 Merge branch 'PHP-7.4' 2019-10-20 16:59:30 +01:00
Fabien Villepinte cdacad8e50 Merge branch 'PHP-7.4' 2019-10-20 10:57:31 +02:00
Fabien Villepinte 08b7279036 Merge branch 'PHP-7.4' 2019-10-19 22:12:18 +02:00
Christoph M. Becker 0436bc875e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix miscellaneous typos in docs
2019-10-19 19:20:25 +02:00
Fabien Villepinte 23f3b54906 Merge branch 'PHP-7.4' 2019-10-19 15:44:57 +02:00
Christoph M. Becker 284e993791 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78684: PCRE bug72463_2 test is sending emails on Linux
2019-10-19 12:59:59 +02:00
Christoph M. Becker b00cc3378c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78694: Appending to a variant array causes segfault
2019-10-19 11:52:38 +02:00
Nikita Popov 49327e2e15 Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve exif tag name fetching
  Implement a cache for exif tag name lookups
  Limit the amount of errors generated during exif parsing
2019-10-18 16:55:46 +02:00
Christoph M. Becker 43a1363a05 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test case
2019-10-18 16:24:14 +02:00
Christoph M. Becker 2484f1e88a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #70153 \DateInterval incorrectly unserialized
2019-10-18 15:33:58 +02:00
Christoph M. Becker ecc9588d0c Properly handle non resources passed to socket_select()
As of PHP 8.0.0, failing `zend_fetch_resource_ex()` throws a TypeError,
so we cannot simply skip non resources in the `$read`, `$write` and
`$except` arrays.  Instead we bail out.  Since these arrays are already
checked in `php_sock_array_to_fd_set()`, we remove the additional check
in `php_sock_array_from_fd_set()`.
2019-10-18 14:16:25 +02:00
Christoph M. Becker 04d5086578 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update array access syntax deprecated
2019-10-17 23:40:30 +02:00
Dmitry Stogov 605e0de357 Clenup "smart branch" handling 2019-10-18 00:11:30 +03:00
Dmitry Stogov 65c4cc231d Fixed wrong shift 2019-10-17 23:31:47 +03:00
Nikita Popov e80934d747 Pass cache slot when printing type errors
Instead of using a separate ce.
2019-10-17 17:06:48 +02:00
Nikita Popov 9a634a9c6b Merge branch 'PHP-7.4'
* PHP-7.4:
  Integrate property types with variance system
2019-10-17 13:42:47 +02:00
Dmitry Stogov 3df64af965 Relay on DO_ICALL/DO_UCALL opcode to avoid generation of useless code 2019-10-17 12:55:36 +03:00
Dmitry Stogov 3a88c5b87a Fixed exception handling 2019-10-16 22:38:01 +03:00
Fabien Villepinte 86c33b8ddd Merge branch 'PHP-7.4' 2019-10-16 20:53:52 +02:00
Dmitry Stogov 5431837a6c Clenup "smart branch" handling 2019-10-16 12:28:30 +03:00
Dmitry Stogov 51da02375a Fixed exception handling 2019-10-16 02:36:06 +03:00
Dmitry Stogov 902b00e68e Fixed exception source 2019-10-16 01:26:35 +03:00
Derick Rethans 087d8cd214 Merge branch 'PHP-7.4' 2019-10-15 21:01:05 +01:00
Fabien Villepinte 3d22c80fc2 Test an error case with DOMDocument::createEntityReference 2019-10-15 21:56:44 +02:00
Sara Golemon b8bf8a4372 Merge branch 'PHP-7.4'
* PHP-7.4:
  Silence undefined index warning when openssl not available.
2019-10-15 15:38:24 -04:00
Christoph M. Becker 6ff5316c7f Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent parallel testing conflicts
2019-10-15 16:30:07 +02:00
Christoph M. Becker 8f0a9199ee Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS for 7.4.0RC5
  Update NEWS for PHP 7.4.0RC4
2019-10-15 16:28:04 +02:00
Christoph M. Becker 273731fb76 Add Zend class/interface arginfo stubs
We also change `Generator::throw()` to expect a `Throwable` in the
first place, and we now throw a TypeError instead of returning `false`
from `Exception::getTraceAsString()`.
2019-10-15 16:21:00 +02:00
Nikita Popov 5c24f8042d Promote "Cannot use parent" to fatal error 2019-10-15 11:46:48 +02:00
Dmitry Stogov 0d55456d73 Use "const" qualifier 2019-10-15 11:06:11 +03:00
Dmitry Stogov cef1960ce7 Use "const" qualifier 2019-10-14 21:49:08 +03:00
Dmitry Stogov 5213612359 Fixed compilation warning 2019-10-14 21:47:46 +03:00
Dmitry Stogov 2958fecb8b Fixed incorrect JIT compilation 2019-10-14 21:32:10 +03:00
Joe Watkins f8e3970ff0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix checksum calculation for opcache
2019-10-14 16:50:56 +02:00
Nikita Popov 4e563e6c95 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix handling of overflowing invalid octal in tokenizer
2019-10-14 16:37:27 +02:00
Dmitry Stogov 3f50922aee Fixed incorrect JIT compilation 2019-10-14 16:45:58 +03:00
Dmitry Stogov 4273865bba Drop checkpoint that leaded to use after free 2019-10-14 13:37:22 +03:00
Nikita Popov 9257fa79be Merge branch 'PHP-7.4'
* PHP-7.4:
  Add "-pthread" to EXTRA_LDFLAGS_PROGRAM as well
2019-10-14 11:34:38 +02:00
Dmitry Stogov 5197d0cd5e Reduced number of CFG pass iterations 2019-10-14 11:37:10 +03:00
Fabien Villepinte 6daa54d3be Fix grammar in skipif messages 2019-10-12 23:18:56 +02:00
Christoph M. Becker 77bd1ce60d Just return after exception has been thrown 2019-10-12 23:09:23 +02:00
Thomas Gerbet 428bd3d908 Add stubs for ext-sockets 2019-10-12 17:08:24 +02:00
Christoph M. Becker cc8739cfb9 Fix potentially borked test case
If interface 'lo' is not available, `socket_set_option()` may warn,
which would cause the test to be marked as borked.  Thus we silence the
function call.
2019-10-12 16:48:45 +02:00
Christoph M. Becker 52f0610b74 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test case
2019-10-12 16:29:42 +02:00
Christoph M. Becker 642f80636e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix potential heap corruption
2019-10-12 16:16:44 +02:00
Christoph M. Becker 993463a65e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78665: Multicasting may leak memory
2019-10-12 14:46:36 +02:00
Christoph M. Becker f22608913c Appveyor: switch master to VS 2019 2019-10-11 18:00:49 +02:00
Nikita Popov 242b5547a2 Merge branch 'PHP-7.4' 2019-10-11 17:44:59 +02:00
Nikita Popov 17f91360bd Merge branch 'PHP-7.4' 2019-10-11 17:10:15 +02:00
Nikita Popov 393aa057d3 Merge branch 'PHP-7.4' 2019-10-11 16:51:50 +02:00
Nikita Popov e35bdb4912 Add fdiv() function
The fdiv() function is part of the fmod() / intdiv() family. It
implements a floating-point division with IEEE-754 semantics.
That is, division by zero is considered well-defined and does not
trigger any kind of diagnostic. Instead one of INF, -INF or NAN
will be returned, depending on the case.

This is in preparation for throwing DivisionByZeroError from the
standard division operator.
2019-10-11 16:36:11 +02:00
Remi Collet 28ed73d94a Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS
  Fix #78662: stream_write bad error detection
2019-10-11 13:38:29 +02:00
Nikita Popov db233501ff Use clean shutdown on uncaught exception 2019-10-11 12:41:15 +02:00
Christoph M. Becker aab1445b4c Don't specify method return values in stubs
We also fix the @return annotation of `::open()` and `::XML()`, which
return an `XMLReader` instance when called statically.
2019-10-11 12:19:00 +02:00
Dmitry Stogov daac578b51 Fixed JIT of preloaded script 2019-10-11 12:54:07 +03:00
Dmitry Stogov 2068ce9adf Use RT_CONSTANT() or CT_CONSTANT() macro depending on ZEND_ACC_DONE_PASS_TWO flag 2019-10-11 12:54:07 +03:00
Nikita Popov 85c8c5bfac Merge branch 'PHP-7.4' 2019-10-11 10:58:03 +02:00
Dmitry Stogov 3db5dc44bc JMP optimization cleanup.
Make JMP optimisation in pass3 and JMP optimization from CFG pass to be almost identical.
2019-10-11 11:23:02 +03:00
Dmitry Stogov 3ad20f80f5 Revert/redo pass_two only once 2019-10-10 23:20:36 +03:00
Dmitry Stogov ca265b04d0 Removed #if HAVE_DFA_PASS 2019-10-10 21:46:24 +03:00
Nikita Popov 3df043324e Merge branch 'PHP-7.4' 2019-10-10 16:15:00 +02:00
Dmitry Stogov 94c469ac98 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fixed CLI/CGI/FPM build, when they are built together with Apache SAPI"
  Revert "Don't buid static libaraies when only DSO required"
  Revert "Link executable files using non PIC object files. This reduces PIC overhead and improves performance."
2019-10-10 17:00:45 +03:00
Fabien Villepinte 78c753e8ee Fix typo in tests 2019-10-10 15:57:57 +02:00
Nikita Popov 93b39f68f5 Merge branch 'PHP-7.4' 2019-10-10 15:17:44 +02:00
Dmitry Stogov 833821ac24 Eliminate CHECK_VAR instructions for defined CVs 2019-10-10 16:07:31 +03:00
Nikita Popov 2118f6a898 Merge branch 'PHP-7.4' 2019-10-10 14:44:53 +02:00
Nikita Popov fea482ee5c Merge branch 'PHP-7.4' 2019-10-10 12:45:38 +02:00
Nikita Popov f1aff654be Use php stream in exif fuzzer
This has the main benefit that we don't go through the
realpath cache, which will cause leak checking to be
disabled.
2019-10-10 12:33:15 +02:00
Nikita Popov a748d27c9b Merge branch 'PHP-7.4' 2019-10-10 12:08:17 +02:00
Nikita Popov 1ab489e99a Merge branch 'PHP-7.4' 2019-10-10 11:42:05 +02:00
Dmitry Stogov 6a459a8a3f Separate common code and add few more patterns 2019-10-10 12:19:06 +03:00
Nikita Popov 595e8c6773 Merge branch 'PHP-7.4' 2019-10-10 11:17:55 +02:00
Dmitry Stogov 0cb977a691 Fixed edge cases introduced by 170ed1f5a7 2019-10-10 11:48:31 +03:00
Nikita Popov c1da10b77b Set display_startup_errors=0 when running skipif
Now that we're displaying errors in skipif, suppress this particular
category. Otherwise we get warnings in the SKIPIF of tests with
EXTENSION where the extension does not exist, and there's no way
to suppress them.
2019-10-10 10:43:21 +02:00
Nikita Popov 51501dacb1 Merge branch 'PHP-7.4' 2019-10-10 10:08:32 +02:00
Nikita Popov b093abcde3 Fix exception handling for call_user_func_array() with invalid type
Now that this throws an exception, the call frame cleanup will be
handled by exception handling -- remove it here to avoid double
frees.
2019-10-10 09:55:19 +02:00
Dmitry Stogov d9964efe23 One more place 2019-10-10 02:21:37 +03:00
Dmitry Stogov bf5d299ef4 Fixed typo 2019-10-10 02:17:50 +03:00
Dmitry Stogov fa0a17a76f Move ECHO handling into common switch 2019-10-09 23:24:41 +03:00
Dmitry Stogov fd69af38c8 Cleanup JMP optimization. Remove duplicate code (conditional jums with constant operand) and outdated commented code. 2019-10-09 23:07:32 +03:00
Dmitry Stogov 78a1c8c811 Cleanup JMP optimization pass 2019-10-09 22:52:09 +03:00
Nikita Popov b53b2f3e82 Merge branch 'PHP-7.4' 2019-10-09 17:34:00 +02:00
Christoph M. Becker 508a179568 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78656: Parse errors classified as highest log-level
2019-10-09 17:30:37 +02:00
Nikita Popov efed9f6b15 Merge branch 'PHP-7.4' 2019-10-09 17:01:02 +02:00
Dmitry Stogov d37f5da75e typo and cleanup 2019-10-09 17:58:35 +03:00
Nikita Popov cb657440b4 Merge branch 'PHP-7.4' 2019-10-09 14:58:17 +02:00
Christoph M. Becker 73e9acbaff Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78650: new COM Crash
2019-10-09 14:17:25 +02:00
Nikita Popov 9c9a833f9c Actually remove the YIELD key specialization
I only adjusted the code before, without switching to TMPVAR.
2019-10-09 14:11:07 +02:00
Nikita Popov 165a065a12 Reduce YIELD key specialization
Keeping the value specialization for now, which is more commonly
applicable.
2019-10-09 13:59:07 +02:00
Nikita Popov da3b245715 Reduce YIELD_FROM specialization
Generator delegation is a complex compound operation, it does not
make a lot of sense to optimize refcounting here to this degree.
2019-10-09 13:53:07 +02:00
Nikita Popov 2aba10be4a Reduce ZEND_THROW specialization
Throwing is very expensive due to the need of gathering the backtrace,
so it makes little sense to optimize refcounting to this degree.
2019-10-09 13:17:25 +02:00
Dmitry Stogov f6f32f2cf0 SAMRT BRANCH improvement.
Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ.
Now instead of checking the opcode of following instruction, the same information is encoded into SMART BRANH result_type.
2019-10-09 13:48:39 +03:00
Dmitry Stogov 170ed1f5a7 Otimize out useless QM_ASSIGN 2019-10-09 09:08:25 +03:00
Gabriel Caruso 95181553c8 Add missing zend_parse_parameters_none() checks
Closes GH-4796.
2019-10-08 23:10:18 +02:00
Nikita Popov b0cf34a30c Merge branch 'PHP-7.4' 2019-10-08 18:20:31 +02:00
Nikita Popov bd21e202b9 Reduce oniguruma limits in fuzzing sapi
The defaults are fairly conservative and may still take quite a
bit to match a single expression. Reduce them by a factor of 10x
to speed up fuzzing.
2019-10-08 17:38:49 +02:00
Nikita Popov a32f130f94 Merge branch 'PHP-7.4' 2019-10-08 17:34:25 +02:00
Nikita Popov 7c1bc91e52 Merge branch 'PHP-7.4' 2019-10-08 17:19:52 +02:00
Nikita Popov 571a3bfc6c Merge branch 'PHP-7.4' 2019-10-08 16:14:19 +02:00
Dmitry Stogov 31c3b0c7cc Fixed Zend/tests/bug70785.phpt on builds wothout global regesters 2019-10-08 17:08:59 +03:00
Nikita Popov cffa81e438 Merge branch 'PHP-7.4' 2019-10-08 15:52:18 +02:00
Dmitry Stogov 56ae3f6c4a Added "const" qualifier 2019-10-08 16:50:04 +03:00
Dmitry Stogov eec04f6b56 Encapsulate all SMART BRANCH related logic inside macros. Result of SMART BRANCH may be uninitialized (on exception). 2019-10-08 16:37:21 +03:00
Nikita Popov d98497615c Merge branch 'PHP-7.4' 2019-10-08 14:33:01 +02:00
Christoph M. Becker a11f85805a Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIFs in exif tests
2019-10-08 14:13:23 +02:00
Nikita Popov 41526976c5 Merge branch 'PHP-7.4' 2019-10-08 12:35:47 +02:00
Christoph M. Becker 8548a1bdec Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78642: Wrong libiconv version displayed
2019-10-08 12:11:19 +02:00
Christoph M. Becker 1c0ebef819 Merge branch 'PHP-7.4'
* PHP-7.4:
  7.3.12 is next
2019-10-08 12:06:11 +02:00
Remi Collet 0a361dd1b9 Merge branch 'PHP-7.4'
* PHP-7.4:
  next is 7.2.25
2019-10-08 11:37:09 +02:00
Remi Collet 3dabce087c Merge branch 'PHP-7.4'
* PHP-7.4:
  add librt for opcache
2019-10-08 10:49:30 +02:00
Christoph M. Becker e9be4622c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78641: addGlob can modify given remove_path value
2019-10-08 09:50:43 +02:00
Tyson Andre 1065becb57 Merge branch 'PHP-7.4' 2019-10-07 19:33:03 -04:00
Markus Staab 0eee18097f Fix typo [ci skip] 2019-10-07 23:11:19 +02:00
Christoph M. Becker 121bb732f9 Fix com_dotnet build 2019-10-07 19:39:38 +02:00
Nikita Popov 9522bbaf79 Merge branch 'PHP-7.4' 2019-10-07 17:52:54 +02:00
Nikita Popov e9f4676b3f Merge branch 'PHP-7.4' 2019-10-07 17:31:12 +02:00
Dmitry Stogov b02b81299c Comparison cleanup:
- introduce zend_compare() that returns -1,0,1 dirctly (without intermediate zval)
- remove compare_objects() object handler, and keep only compare() handler
2019-10-07 17:57:49 +03:00
Christoph M. Becker e2100619ac Expect appropriate parameter type in the first place
`mb_encode_numericentity()` and `mb_decode_numericentity()` accepted
arbitrary zvals as `$convmap`, but ignored anything else than arrays.
This appears to be an unresolved relict of their ZPP conversion for
PHP 5.3[1].  We now expect an array in the first place.

We also expect `count($convmap)` to be a multiple of four (else we
throw a `ValueError`), and do no longer special case empty `$convmap`.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=1c77f594294aee9d60e7309279c616c01c39ba9d>
2019-10-07 16:48:08 +02:00
Nikita Popov 4802df5b3c Merge branch 'PHP-7.4' 2019-10-07 16:44:44 +02:00
Nikita Popov 57670c6769 Check num required args is correct in debug builds
Also replace the assertion failure with an E_CORE_ERROR that
includes the function name, so these are easier to debug.
2019-10-07 16:34:05 +02:00
Nikita Popov 5f80eb7842 Fix required number of arguments in stubs
* get_parent_class() argument is optional
* Mark array_filter() $callback as optional
* The $base of gmp_strval() is optional
* DateTime constructor also accepts zero arguments
* hash_update_file() stream context is optional
* xmlwriter_write_dtd_entity() $isparam argument is optional
2019-10-07 16:33:41 +02:00
Nikita Popov c9d4696f76 Merge branch 'PHP-7.4' 2019-10-07 16:32:42 +02:00
Nikita Popov 9b28553d45 Merge branch 'PHP-7.4' 2019-10-07 13:24:24 +02:00
Christoph M. Becker e54d2efdda Merge branch 'PHP-7.4'
* PHP-7.4:
  Bail out if JUNIT is not enabled
2019-10-07 13:22:47 +02:00
Nikita Popov 749134f867 Merge branch 'PHP-7.4' 2019-10-07 12:43:51 +02:00
Christoph M. Becker d37454d9f0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Delete temporary .post files of run-tests.php
2019-10-07 12:18:27 +02:00
theodorejb ef9736e062 Convert string function arginfo to PHP stubs 2019-10-07 11:13:16 +02:00
Nikita Popov fdc133063d Convert count_chars invalid mode error to ValueError 2019-10-07 11:10:05 +02:00
Nikita Popov 2fcd454480 Merge branch 'PHP-7.4' 2019-10-07 10:51:22 +02:00
Mark 52376c177d Fix bug #78563
Make XmlParser final, unclonable and unserializable.

Closes GH-4778.
2019-10-07 10:24:41 +02:00
Tyson Andre dd61edfd7c Update opcache return type info for gd functions
Many of these now have reflection types,
making the old signatures redundant or inaccurate.
(Some methods also throw Errors instead of returning null/false)

Closes GH-4785.
2019-10-07 10:16:50 +02:00
Tyson Andre 02f2056864 Update zend_func_info for pcre/curl/iconv/json
preg_quote and curl_error now have a non-null return type of `string`.

zend_func_info now duplicates many real reflection types
(some of which are now non-null)

Closes GH-4788.
2019-10-07 10:16:31 +02:00
Tyson Andre 52dfe873ab Remove redundant zend_func_info for zlib/hash/session
E.g. hash_equals is outdated - it has a non-null reflection type of bool.

Remove redundant signatures for types that are obviously not reference
counted (`F0`).

Closes GH-4787.
2019-10-07 10:16:08 +02:00
Tyson Andre d0f7a7e7c9 Remove redundant func info for ctype/bc/fileinfo
This is limited to types that aren't reference counted.
I assume the info that there is exactly one reference
should be preserved (e.g. for bcsqrt)

Closes GH-4786.
2019-10-07 10:15:50 +02:00
Tyson Andre 3c2ba240a9 Update zend_func_info for zend, array extensions
Some of these functions now have real reflection types
and will throw instead of return null/false.

Others provide the exact same reflection type information
that zend_func_info does. (or would after updating outdated types)

Closes GH-4790.
2019-10-07 10:15:30 +02:00
Nikita Popov 647b1c7fcf Remove most uses of ZEND_PARSE_PARAMETERS_END_EX()
As ZPP now throws, it makes no sense to specify an explicit return
value.
2019-10-07 10:02:18 +02:00
Nikita Popov 5ff7347a66 Merge branch 'PHP-7.4'
[ci skip]
2019-10-07 09:51:28 +02:00
Christoph M. Becker 2ff42076ff Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78623: Regression caused by "SP call yields additional empty result set"
2019-10-07 09:19:08 +02:00
Christoph M. Becker 8f7238ed5c Explicitly declare empty parameter list 2019-10-06 19:04:51 +02:00
Christoph M. Becker 058fed6cd9 Just return on failing ZPP 2019-10-06 18:00:17 +02:00
Christoph M. Becker 013506779c Add missing zend_parse_parameters_none() 2019-10-06 17:56:40 +02:00
Christoph M. Becker 0a47096c08 Add MBString arginfo stubs 2019-10-06 17:45:32 +02:00
Thomas Gerbet ff00f49673 Add stubs for ext-xmlrpc 2019-10-06 13:47:21 +02:00
Nikita Popov 21e631e473 Merge branch 'PHP-7.4' 2019-10-06 10:07:57 +02:00
Benjamin Eberlei e40da2661a Update NEWS 2019-10-05 19:01:50 +02:00
Benjamin Eberlei 6c963694b1 ext/dom: Add global registerNodeNS flag on DOMXPath ctor and property. 2019-10-05 18:56:58 +02:00
Christoph M. Becker 375ceefec0 Add missing zend_parse_parameters_none() 2019-10-05 18:22:01 +02:00
Christoph M. Becker e3abc534eb Add ext/pspell arginfo stubs 2019-10-05 11:11:52 +02:00
Christoph M. Becker 49b98b4d5c Add arginfo stub for JsonSerializable 2019-10-05 11:10:30 +02:00
Nikita Popov 5050507282 Merge branch 'PHP-7.4' 2019-10-04 22:47:10 +02:00
Nikita Popov 43358cc7b6 Merge branch 'PHP-7.4' 2019-10-04 16:04:42 +02:00
Christoph M. Becker 487e6e9eca Merge branch 'PHP-7.4'
* PHP-7.4:
  Split intl tests for ICU 65
2019-10-04 13:55:33 +02:00
Nikita Popov fec0ff8cb0 Merge branch 'PHP-7.4' 2019-10-04 12:42:58 +02:00
Dmitry Stogov dc3c8c75da Prefer optimization without JMPZNZ instruction 2019-10-04 12:52:46 +03:00
Nikita Popov d44cf9b539 Replace "unexpected character" warning with ParseError
Closes GH-4767.
2019-10-04 11:28:58 +02:00
Nikita Popov 11d139625f Merge branch 'PHP-7.4' 2019-10-04 10:39:32 +02:00
Nikita Popov c10cd739a7 Merge branch 'PHP-7.4' 2019-10-04 10:12:16 +02:00
Christoph M. Becker 0edcd105f3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78620: Out of memory error
2019-10-04 09:14:36 +02:00
Dmitry Stogov 3f069b19a0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78614 (Does not compile with DTRACE anymore)
2019-10-04 10:10:53 +03:00
Joe Watkins 26baf5454b Merge branch 'PHP-7.4'
* PHP-7.4:
  fix #78624: session_gc return value for user defined session handlers
2019-10-04 06:16:41 +02:00
Joe Watkins 4731f57882 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in CODING_STANDARDS.md [ci skip]
2019-10-04 05:42:44 +02:00
Dmitry Stogov bf56daa8c8 Remove "finally" restriction. 2019-10-04 02:53:24 +03:00
Dmitry Stogov 204660fd9a Simplify protection from infinity loops 2019-10-04 02:04:00 +03:00
Dmitry Stogov 3a78c3aaf5 Moved non-constant JMP optimizations from pass1 to pass3.
Removed useless "break"s, that stopped optimization too early.
2019-10-04 00:27:49 +03:00
Dmitry Stogov 39d1e50b2d Avoid "$a = $a + ..." to "$a += ..." conversion (compound assignments work slower).
Added DFA optimization patters (e.g. "$a = $a + 1" to "++$a"), that previously worked only for compound assignments.
2019-10-03 16:33:17 +03:00
Dmitry Stogov de3c1eb85e Move obvious optimization patterns from pass1 directly to compiler 2019-10-03 14:57:20 +03:00
Dmitry Stogov a5465728c2 Added missing rules 2019-10-03 14:56:02 +03:00
Dmitry Stogov c1de93efbe Fixed comments 2019-10-03 13:55:58 +03:00
Dmitry Stogov 59c828a8c4 Added missing rules 2019-10-03 13:54:08 +03:00
Joe Watkins 114060e2f2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #76809 (SSL settings aren't respected when persistent connection is reused)
2019-10-03 07:13:49 +02:00
Joe Watkins 733a1e9df0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #76859 stream_get_line skips data if used with data-generating filter
2019-10-03 06:52:25 +02:00
Dmitry Stogov 1e4c553e0d Cleanup JMP optimization rules 2019-10-03 04:26:40 +03:00
Dmitry Stogov 6cac8d5b3b Optimizer cleanup
- all rules from pass2 moved to pass1
- all JMP unrelated rules from pass3 moved to pass1
- pass3 keeps only JMP optimization rules
- pass2.c is removed
- pass1_5.c remaned to pass1.c ("_5" was related to PHP 5)
2019-10-03 02:18:16 +03:00
Derick Rethans a0eef7067b Updated to version 2019.3 (2019c) 2019-10-02 23:39:12 +01:00
Derick Rethans bf0a39a1c6 Empty merge 2019-10-02 23:39:12 +01:00
Christoph M. Becker f6c685a750 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fix #78620: Out of memory error"
2019-10-02 19:03:48 +02:00
Christoph M. Becker d0672fc005 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78620: Out of memory error
2019-10-02 18:22:11 +02:00
theodorejb e60d9da167 Fix array_fill stub return type
This was missed in commit d5e9ef8f0f.
2019-10-02 18:01:27 +02:00
Fabien Villepinte 76c8f2ed34 Fix regex in generate_parser_corpus.php
The next section after --FILE-- is not necessarily --EXPECT--.
Accept any section.

Closes GH-4770.
2019-10-02 16:56:41 +02:00
tyage 4d6f88e215 Fix #72374: remove_path strips first char of filename 2019-10-02 15:33:28 +02:00
Nikita Popov 8a2a9e05a4 Merge branch 'PHP-7.4' 2019-10-02 14:41:25 +02:00
George Peter Banyard d5e9ef8f0f Promote warnings to error in array_flip()
Closes GH-4576.
2019-10-02 12:31:02 +02:00
Nikita Popov d882795d78 Merge branch 'PHP-7.4' 2019-10-02 12:08:12 +02:00
Christoph M. Becker 9fc5471578 Fix borked test case
Setting `CURLOPT_STDERR` can trigger a warning, what causes the test to
be marked as borked as of commit e49593a[1].  To avoid this, we silence
the `curl_setopt()` call.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=e49593a7c3159a5673ce74b4e5133f1264dc313f>
2019-10-02 11:37:33 +02:00
Nikita Popov 52ba5efaf7 Merge branch 'PHP-7.4' 2019-10-02 11:34:54 +02:00
peter279k 1ea329d457 Fix bug #77204
Include opened path in getimagesize() error message
2019-10-02 11:21:17 +02:00
Nikita Popov a653240bd7 Prune opcache func info
Remove opcache func info for some functions which have arg info
with same or better accuracy (this is incomplete, we can drop more).
2019-10-02 10:54:47 +02:00
George Peter Banyard 1ca4ab09a5 Promote warnings to errors in array_push()
This is in line with the engine change from
https://wiki.php.net/rfc/engine_warnings.
2019-10-02 10:38:23 +02:00
Nikita Popov 2f92957fd3 Convert some notices to warnings
Part of https://wiki.php.net/rfc/engine_warnings.
2019-10-02 10:34:08 +02:00
Nikita Popov 2041c9abf5 Merge branch 'PHP-7.4' 2019-10-02 10:09:37 +02:00
Joe Watkins 32b87f855e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed #75245 Don't set content of elements with only whitespaces
2019-10-02 08:17:45 +02:00
Dmitry Stogov e7e8e45166 Fixed tests 2019-10-02 02:31:01 +03:00
Dmitry Stogov 02b166cde6 Remove irrelevant tests (they were failed because of warning to exception chenge in parameter parsing API). 2019-10-02 01:13:30 +03:00
Dmitry Stogov fbe19323ac Fixed tests 2019-10-02 01:09:37 +03:00
Dmitry Stogov 2de67e6e6e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed test that "fails" from time to time
2019-10-02 00:57:40 +03:00
Dmitry Stogov 96ae6f7041 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed test that "fails" from time to time
2019-10-02 00:49:58 +03:00
Nikita Popov 27ad0efb58 Revert "Save opline before fallible arg type check in recv_init jit"
This reverts commit b09bddcaa5.

This causes test failures on macos -- presumably the relevant
difference is that it has no global regs. I suspect that this
is related to the fact that SAVE_VALID_OPLINE may use r0 as
a scratch register, which is already in use. Reverting for now.
2019-10-01 22:16:56 +02:00
Nikita Popov 646dc19048 Suppress fsockopen error in ldap_set_rebind_proc_error.phpt 2019-10-01 22:02:47 +02:00
Nikita Popov 872a759f88 Limit input size in exif fuzzer
Probably still too much...
2019-10-01 18:29:23 +02:00
Nikita Popov 7d90f4864d Require a space ofter run-tests "warn"
We don't want to treat a PHP "Warning: " as a run-tests warn.
2019-10-01 17:36:42 +02:00
Nikita Popov b09bddcaa5 Save opline before fallible arg type check in recv_init jit
The verify arg functions may throw an exception, so we need to save
the opline beforehand. Asan failures could be observed in
Zend/tests/type_declarations/scalar_constant_defaults.phpt
with a ZTS build.
2019-10-01 17:19:27 +02:00
Gerard Roche 1afcf28ad0 README: Fix AppVeyor branch and add link to LICENSE
Point AppVeyor status badge to master

Closes GH-4763.

[ci skip]
2019-10-01 15:15:36 +02:00
Nikita Popov 82f74ce3f2 Improve bless tests script to minimize diffs
Compute the diff between the old EXPECTF and the new output and
don't touch lines that still match the old EXPECTF. This reduces
the amount of manual fixup necessary after running bless_tests.php.
2019-10-01 15:00:22 +02:00
Nikita Popov edace5f5e0 Merge branch 'PHP-7.4' 2019-10-01 13:05:12 +02:00
Nikita Popov 4d49ec208e Add --enable-fuzzer-msan flag
To build fuzzers with memory sanitizer.
2019-10-01 13:04:47 +02:00
Christoph M. Becker b53d9528c2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix AppVeyor build
2019-10-01 11:51:35 +02:00
Christoph M. Becker 76179cdf3d Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing skip keyword in tests
  Update NEWS for 7.4.0RC4
  Update NEWS for PHP 7.4.0RC3
2019-10-01 11:19:43 +02:00
Christoph M. Becker 21e4f48260 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix AppVeyor setup wrt. changed OpenSSL default config path
2019-10-01 10:01:58 +02:00
Christoph M. Becker e2338208aa Merge branch 'PHP-7.4'
* PHP-7.4:
  Update regarding changed OpenSSL default config path
2019-10-01 09:16:51 +02:00
Nikita Popov 15761ef359 Pass mode to open() in exif fuzzer
Funny how despite all those sanitizers running, nothing ever
caught this...
2019-09-30 18:23:47 +02:00
Fabien Villepinte e49593a7c3 Mark test as borked when skipif produces invalid output
SKIPIF section should either output nothing, or start with a
supported keyword like "skip". Mark all tests that don't do so as
BORKED.
2019-09-30 17:52:43 +02:00
Nikita Popov 235983dfde Merge branch 'PHP-7.4' 2019-09-30 17:52:39 +02:00
Christoph M. Becker a601d519aa Just return after throwing a ValueError 2019-09-30 16:40:56 +02:00
Mark 8aad466c42 Convert GD Resources to objects 2019-09-30 15:14:02 +02:00
Nikita Popov c0a54f41b3 Merge branch 'PHP-7.4' 2019-09-30 15:06:51 +02:00
Christoph M. Becker b1468169dc Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip tests for old versions instead of marking them XFAIL
2019-09-30 14:14:59 +02:00
Christoph M. Becker d0d7508d1b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78609: mb_check_encoding() no longer supports stringable objects
2019-09-30 13:07:19 +02:00
Nikita Popov b442a9b69b Merge branch 'PHP-7.4' 2019-09-30 12:54:45 +02:00
Nikita Popov 01fc1a3057 Remove most uses of the ERROR type
It is now only used to signal exceptions for property reads. ERROR
zvals are never returned back to the VM anymore, so there's no
need to check for them when receiving a VAR.

Also return MAY_BE_ERROR, as ERROR is now no longer relevant for
inference.
2019-09-30 11:35:07 +02:00
Nikita Popov 7e77617533 Merge branch 'PHP-7.4' 2019-09-30 10:42:47 +02:00
Dmitry Stogov 9372b6876d Restore "avoid exception check" optimization and add EG(exception) check only on slow path. 2019-09-30 11:40:25 +03:00
Nikita Popov 1cde9e8528 Merge branch 'PHP-7.4' 2019-09-30 10:30:20 +02:00
Christoph M. Becker ecb1e312a0 Fix default value 2019-09-29 18:22:36 +02:00
Christoph M. Becker 3c16606d46 Elevate warning to ValueError for invalid ZipArchive object 2019-09-29 14:28:39 +02:00
Christoph M. Becker 6902d14b81 Properly clean up files created by test cases 2019-09-29 14:28:39 +02:00
Christoph M. Becker 61a4ae90d7 Add missing zend_parse_parameters_none() 2019-09-29 14:28:38 +02:00
Christoph M. Becker 1858b00d00 Add ZipArchive arginfo stubs 2019-09-29 14:28:37 +02:00
Christoph M. Becker 31e8ce6604 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix build for libzip < 0.11.2
2019-09-29 13:39:15 +02:00
Nikita Popov 33bf1495b2 Don't use asm arithmetic under msan
Clang 9 supports asm goto, so these no longer get automatically
skipped.
2019-09-29 11:38:34 +02:00
Craig Duncan 676f455f74 Convert libxml arginfo to php stubs 2019-09-29 10:40:37 +02:00
Nikita Popov 1593f79ecd Merge branch 'PHP-7.4' 2019-09-28 21:30:15 +02:00
Nikita Popov 38387d7cfc Merge branch 'PHP-7.4' 2019-09-28 17:17:36 +02:00
Christoph M. Becker 03e92d4d48 Add ext/snmp arginfo stubs 2019-09-28 15:47:00 +02:00
Christoph M. Becker bf13d25f1c Don't return explicit value on failing ZPP 2019-09-28 13:39:40 +02:00
Christoph M. Becker 8574268ccb Add missing zend_parse_parameters_none() 2019-09-28 13:33:46 +02:00
Nikita Popov 61f8f68a79 Make fuzzing sapi i386 compatible
* Avoid an unnecessary -lstdc++ dependency. It's not going to be
   used in the end anyway, and is an unnecessary hassle to set up.
 * Use $LIB_FUZZING_ENGINE instead of hardcoding -lFuzzingEngine.
2019-09-27 23:58:48 +02:00
Nikita Popov 8145da0d82 Remove unused zend_del_literal() function 2019-09-27 23:58:48 +02:00
Christoph M. Becker ed2c13ab07 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix wrong function name in SKIPIF
2019-09-27 23:02:51 +02:00
Christoph M. Becker 5a4b9bcc94 More ZPP warning to error related test fixes 2019-09-27 19:16:35 +02:00
Christoph M. Becker 752012a491 Fix tests wrt. ZPP warnings to errors
Since these test parts are solely about checking ZPP, we drop them
altogether.
2019-09-27 19:07:29 +02:00
Christoph M. Becker f8ae8e9e80 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test regarding Reflection::export() deprecation
2019-09-27 16:35:40 +02:00
Christoph M. Becker f11801712e Initialize variables
These variables may not be initialized otherwise, but are passed to
another function; although it seems they are not used there, if not
having been initialized, MSVC complains.
2019-09-27 16:15:37 +02:00
Christoph M. Becker 8ad301a1de Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix SKIPIF in ext/mysqli
2019-09-27 16:05:17 +02:00
Nikita Popov 38b19d47e0 Convert "Only arrays and Traversables can be unpacked" into Error 2019-09-27 15:50:34 +02:00
Nikita Popov e8b0163e0b Promote write "use scalar as array" warning to Error 2019-09-27 15:49:18 +02:00
Nikita Popov 32c20d5670 Remove unused mmap_file + mmap_len from basic_globals 2019-09-27 13:00:07 +02:00
Nikita Popov 2354aa9676 Add test for illegal unset/isset offset
Weirdly these warnings had zero coverage previously...

Remove an incorrect exception checking optimization: The key
lookup may throw (it could also throw previously, though only
through a custom error handler).
2019-09-27 13:00:07 +02:00
Nikita Popov 0ebf2bdba0 Convert "Illegal offset type" warnings to exceptions 2019-09-27 13:00:07 +02:00
Nikita Popov f2b09969db Convert "cannot add element" warning to exception 2019-09-27 13:00:07 +02:00
Christoph M. Becker 36eecc1076 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix skipif.inc
2019-09-27 12:52:52 +02:00
Nikita Popov 31ff9f3e29 Merge branch 'PHP-7.4' 2019-09-27 11:20:48 +02:00
Nikita Popov aa02c259f8 Merge branch 'PHP-7.4' 2019-09-27 11:12:13 +02:00
Nikita Popov 34e7c2daf0 Merge branch 'PHP-7.4' 2019-09-27 10:49:25 +02:00
Nikita Popov a66c60cce3 Throw Error when writing property of non-object
This removes object auto-vivification support.

This also means that we can remove the corresponding special
handling for typed properites: We no longer need to check that a
property is convertible to stdClass if such a conversion might
take place indirectly due to a nested property write.

Additionally OBJ_W style operations now no longer modify the
object operand, and as such we no longer need to treat op1 as a
def in SSA form.

The next step would be to actually compile the whole LHS of OBJ_W
operations in R rather than W mode, but that causes issues with
SimpleXML, whose object handlers depend on the current compilation
structure.

Part of https://wiki.php.net/rfc/engine_warnings.
2019-09-27 10:11:47 +02:00
Tyson Andre e8d2097bdc Update opcache zend_func_info after wbmp/xml_parser changes
See UPGRADING on the master branch.

```
- GD:
  . The deprecated function image2wbmp() has been removed.
    RFC: https://wiki.php.net/rfc/image2wbmp
  . The deprecated functions png2wbmp() and jpeg2wbmp() have been removed.
    RFC: https://wiki.php.net/rfc/deprecate-png-jpeg-2wbmp
- XML:
  . xml_parser_create(_ns) will now return an XmlParser object rather than a
    resource.
```
2019-09-27 10:06:36 +02:00
Dmitry Stogov 7d7b20ea91 Don't generate useless stubs 2019-09-26 23:21:48 +03:00
Nikita Popov 8686a3d30b Merge branch 'PHP-7.4' 2019-09-26 13:50:02 +02:00
Nikita Popov 7e295da81c Limit max length for parser fuzzer
We're getting some very large inputs (~500KB) on OSS-Fuzz, which
slot down performance a lot. Let's try limiting this, starting
with a still fairly large value of 64KB.

Also remove the max_execution_time limit, so that slow test cases
cause a genuine libfuzzer timeout and we may investigate them.
2019-09-26 10:45:47 +02:00
Nikita Popov adcc07dd44 Merge branch 'PHP-7.4' 2019-09-26 10:26:12 +02:00
Dmitry Stogov 470bbb8c70 Avoid code dupliction 2019-09-26 01:40:30 +03:00
Dmitry Stogov de599aec9f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed GOTO VM
2019-09-26 01:20:48 +03:00
Dmitry Stogov cf33837d75 Cleanup CFG optimization 2019-09-25 17:30:59 +03:00
Stephen Reay 72e3b252e8 Adding ldap stubs for arginfo 2019-09-25 15:09:25 +02:00
Gabriel Caruso 5d6e923d46 Remove mention of PHP major version in Copyright headers
Closes GH-4732.
2019-09-25 14:51:43 +02:00
Nikita Popov fb60ccc666 Merge branch 'PHP-7.4' 2019-09-25 11:03:19 +02:00
Christoph M. Becker de6b76805d Just return on throwing ZPP 2019-09-25 10:40:45 +02:00
Christoph M. Becker 2540c44dbe Add missing zend_parse_parameters_none() 2019-09-25 10:40:45 +02:00
Nikita Popov f753975c7a Merge branch 'PHP-7.4' 2019-09-25 10:35:26 +02:00
Stephen Reay b0d80e16e3 Add SimpleXML arginfo stubs 2019-09-25 10:34:21 +02:00
Nikita Popov 2e6c91e3ab Merge branch 'PHP-7.4' 2019-09-25 10:19:34 +02:00
Gabriel Caruso 202158e2cd Merge branch 'PHP-7.4'
* PHP-7.4:
  Use nproc instead of hardcoded number
2019-09-25 00:07:09 +02:00
Christoph M. Becker 652c09ecf7 [ci skip] Update UPGRADING.INTERNALS
Cf. <http://git.php.net/?p=php-src.git;a=commit;h=0c7124e6beff0a7b0540691db370148be06d242a>.
2019-09-24 16:20:18 +02:00
Christoph M. Becker 0c7124e6be Add check_only parameter to get_closure handler
`get_closure` handlers are called to check whether an object is
callable, and to actually get the closure, respectively.  The behavior
of the handler might differ for these two cases, particularly the
handler may throw in the latter case, but should not in the former.

Therefore we add a `check_only` parameter, to be able to distinguish
the desired purpose.
2019-09-24 16:08:42 +02:00
Nikita Popov 1fe47ad233 Add new entries for exif and unserialize fuzzing corpus 2019-09-24 12:34:30 +02:00
Nikita Popov 3b52307c86 Merge branch 'PHP-7.4' 2019-09-24 12:19:14 +02:00
Nikita Popov a369430b00 Avoid signed shift 2019-09-24 11:36:05 +02:00
Christoph M. Becker 3c28a4ac6c Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-09-24 11:16:08 +02:00
Stanislav Malyshev a9dabe0e20 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78559: Heap buffer overflow in mb_eregi
2019-09-23 21:51:26 -07:00
Christoph M. Becker c761616f66 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix NEWS entry
2019-09-23 23:04:26 +02:00
Dmitry Stogov 1030ff5f5f Use cheaper code for scalar type check 2019-09-23 23:04:08 +03:00
Dmitry Stogov 6e226c188c Change ZEND_RECV and ZEND_RECV_VARIADIC to use extended_value for cache slot (instead of op2), to be consistent with ZEND_RECV_INIT. 2019-09-23 22:28:56 +03:00
Nikita Popov 2128c634f6 Check that type is set in ZEND_TYPE_IS_MASK()
Allow this macro to be used without an explicit ZEND_TYPE_IS_SET()
check.
2019-09-23 19:43:27 +02:00
Benjamin Eberlei cece939526 Cleanup ext/dom: Additional unimplemented code following 25bfac4 2019-09-23 19:28:55 +02:00
Nikita Popov 131c1a5668 Merge branch 'PHP-7.4' 2019-09-23 17:18:45 +02:00
Nikita Popov 6276dd826b Use ZEND_TYPE_IS_SET() when checking for property types
Instead of a simple if or 0 comparison. This would no longer work
if zend_type is a struct.
2019-09-23 16:53:54 +02:00
Nikita Popov 3a104c3c37 Merge branch 'PHP-7.4' 2019-09-23 16:43:04 +02:00
Nikita Popov 3012d006ff Don't set nullability flag for parameters without type
Use value 0 instead. To compensate we check in ReflectionParameter
allowsNull() whether the type is set at all: If it isn't, it always
allows null.

This removes a discrepancy between internal&userland functions:
For userland functions allowsNull() on untyped parameters returned
true, but for internal functions it returned false.
2019-09-23 16:39:52 +02:00
Nikita Popov e441378b54 Update error messages in some more tests 2019-09-23 16:39:52 +02:00
Nikita Popov 5dcbc65a53 Canonicalize typed prop/param default value errors
Use shared logic to determine what values are valid, and a single
error message format.
2019-09-23 16:20:26 +02:00
Nikita Popov b7745d6eeb Check for nullable void type earlier 2019-09-23 15:59:47 +02:00
Nikita Popov d7ae123648 Canonicalize typed properties error message
We have lots of other typed properties related error messages of
the form "assign X to typed property Y::$z of type A", so use th
same format for the primary message as well. Special-casing things
like classes and nullability is not going to scale with future
type-system extensions, and I don't think it really adds clarity
either.
2019-09-23 15:48:49 +02:00
Nikita Popov 8d7911ef56 Standardize type printing in reflection
Use ?T instead of "T or NULL".
2019-09-23 15:40:03 +02:00
Nikita Popov 9e8ba7891e Change representation of zend_type from type code to MAY_BE_* mask
This switches zend_type from storing a single IS_* type code to
storing a MAY_BE_* type mask. Right now most code still assumes
that there is only a single type in the mask (or two together
with MAY_BE_NULL). But this will make it a lot simpler to introduce
union types.

An additional advantage (and why I'm doing this separately), is
that a number of special cases no longer need to be handled
separately: We can do a single mask & (1 << type) check to handle
all simple types, booleans (true|false) and null.
2019-09-23 15:31:35 +02:00
Nikita Popov 9ec2480bd6 Merge branch 'PHP-7.4' 2019-09-23 14:52:45 +02:00
Nikita Popov bbc958990c Merge branch 'PHP-7.4' 2019-09-23 13:47:43 +02:00
Nikita Popov 64a5e80bb3 Merge branch 'PHP-7.4' 2019-09-23 13:19:05 +02:00
Nikita Popov febea5219f Merge branch 'PHP-7.4' 2019-09-23 13:09:12 +02:00
Christoph M. Becker 72f73f95b5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow lookup of distro-packaged QDBM headers on Debian
2019-09-23 09:54:59 +02:00
Stephen Reay 01bdc68379 Added arginfo stubs for IMAP extension 2019-09-22 19:25:55 +02:00
Christoph M. Becker 9fa65eed2c Add missing zend_parse_parameters_none() 2019-09-22 19:14:31 +02:00
Christoph M. Becker ac282a90f1 Add skip reasons 2019-09-22 19:14:30 +02:00
Christoph M. Becker 159b088522 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test to be skipped if dom is not available
2019-09-22 18:43:45 +02:00
Christoph M. Becker 3213e1e776 Just return on ZPP exception
No need to return FALSE.
2019-09-22 16:39:02 +02:00
Christoph M. Becker 610b7a74fc Fix arginfo of tidy_repair_string()
Cf. 5356bad8c6.
2019-09-22 16:31:48 +02:00
Christoph M. Becker 5356bad8c6 Remove unused parameter
The `$use_include_path` parameter doesn't make sense for
`tidy_repair_string()`, and actually unused, so we remove it.
2019-09-22 16:28:42 +02:00
Christoph M. Becker 7f36328bf0 Add ext/tidy stubs 2019-09-22 16:18:33 +02:00
Christoph M. Becker 6072fe4342 Properly use zend_parse_method_parameters()
`zend_parse_method_parameters()` is meant for dual (procedural and OO)
APIs; there is no need to attempt to get "this" first, and to dispatch
to `zend_parse_parameters()` and `zend_parse_method_parameters()`,
respectively.
2019-09-22 16:18:33 +02:00
Christoph M. Becker 071ccee7f7 Add ext/dba stubs 2019-09-22 13:58:30 +02:00
Nikita Popov c6315f86c9 Merge branch 'PHP-7.4' 2019-09-22 12:13:22 +02:00
Nikita Popov 0a6291b81a Merge branch 'PHP-7.4' 2019-09-22 10:27:21 +02:00
Christoph M. Becker f2f3134118 Employ zend_parse_method_parameters() 2019-09-22 10:16:06 +02:00
Christoph M. Becker 0f56110615 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix length of key passed to zend_hash_str_find_ptr
2019-09-21 18:13:31 +02:00
Christoph M. Becker 48892e6d24 Remove unused parameter
Cf. <https://bugs.php.net/78579>.
2019-09-21 16:30:17 +02:00
Christoph M. Becker 8293667f60 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78579: mb_decode_numericentity: args number inconsistency
2019-09-21 16:18:20 +02:00
Bishop Bettini 1b086f506b [ci skip] Add phar + imap maintainer email
Looks like commit c09b13cb (Add Bishop Bettini as maintainer for
phar & imap, 2019-03-16) missed adding my email address.
2019-09-20 12:59:50 -04:00
Remi Collet 7eaf2389d8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78574 (broken shared build)
2019-09-20 13:30:28 +02:00
Christoph M. Becker e0a213d98f Make MSVC happy again
MSVC complains about unsupported preprocessor syntax, so we employ the
same workaround as in zend_cpuinfo.h.
2019-09-20 12:51:03 +02:00
Craig Duncan 8326ef5519 Convert soap functions arginfo to php stubs
We alos make the last parameter of `SoapClient::__setCookie()` and
`SoapFault::__construct()` properly nullable.
2019-09-20 11:21:13 +02:00
Craig Duncan 48e696319c Convert pcntl functions arginfo to php stubs 2019-09-20 11:15:22 +02:00
Dmitry Stogov 3d59cec506 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't buid static libaraies when only DSO required
2019-09-19 23:46:45 +03:00
Nikita Popov 6a21804b83 Merge branch 'PHP-7.4' 2019-09-19 21:14:54 +02:00
Nikita Popov eedc4f1295 Merge branch 'PHP-7.4' 2019-09-19 21:02:20 +02:00
Dmitry Stogov ddfb3d6056 Fixed 32-bit JIT 2019-09-19 21:53:36 +03:00
Stephen Reay c34de80df8 Convert IMAP function aliases
These are not really aliases, convert them to normal functions.

Closes GH-4725.
2019-09-19 17:24:49 +02:00
Nikita Popov edfcf2d81f Merge branch 'PHP-7.4' 2019-09-19 17:22:34 +02:00
Nikita Popov 975ef6ea9c Merge branch 'PHP-7.4' 2019-09-19 14:20:38 +02:00
Nikita Popov 962a9cd74e Merge branch 'PHP-7.4' 2019-09-19 11:36:29 +02:00
Nikita Popov cdd4e591a4 Don't make argument nullable based on AST null initializer
Closes GH-4720.
2019-09-19 11:27:00 +02:00
Christoph M. Becker d6ef63db53 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78543: is_callable() on FFI\CData throws Exception
2019-09-19 09:17:53 +02:00
George Peter Banyard f816171240 Indicate entry is skipped in error message 2019-09-18 22:30:12 +02:00
Nikita Popov 0b4e007253 Merge branch 'PHP-7.4' 2019-09-18 16:37:23 +02:00
Nikita Popov 418d243e37 Change instructions to use oniguruma from git
Some bugs are already fixed there.

[ci skip]
2019-09-18 14:56:25 +02:00
Dmitry Stogov 2aefd11211 Optimize access to thread local cache.
This patch saves one CPU instruction on each "_tsrm_ls_cache" access in ZTS CLI/CGI/FPM builds.
This reduce typical instruction sequence for EG(current_execute_data) access from 4 to 3 CPU instructions.
2019-09-18 14:03:07 +03:00
Nikita Popov d7b4cdff3f Add instructions for building an instrumented libonig
[ci skip]
2019-09-18 12:49:42 +02:00
Craig Duncan 1fc2fec138 Convert session functions arginfo to php stubs 2019-09-18 10:59:57 +02:00
Nikita Popov ee41204915 Merge branch 'PHP-7.4' 2019-09-18 10:45:19 +02:00
Nikita Popov 96840a280f Add debugging code to usleep()
To see if intermittent CI failures are caused by a signal interrupt.
2019-09-18 10:13:35 +02:00
Nikita Popov 16f4fa0ee8 Merge branch 'PHP-7.4' 2019-09-18 09:31:52 +02:00
Christoph M. Becker d61bc63c4d Change XMLWriter resources to objects
While we generally prefer objects over resources for quite a while, the
procedural XMLWriter API still uses resources, although there is
already an object-oriented API which uses objects.  This dichotomy
makes no sense, slightly complicates the implementation, and doesn't
allow a stepwise migration to the object-oriented API, which might be
desired.  Thus we completely drop the XMLWriter resources in favor of
XMLWriter objects.

We consider the minor BC break acceptable for a major version, since
only explicit type checks (`is_resource()`, `gettype()` etc.) need to
be adapted.
2019-09-18 08:52:14 +02:00
Benjamin Eberlei 873b54840f Upgrading notes for removed ext/dom classes. 2019-09-17 23:52:08 +02:00
Benjamin Eberlei 25bfac44b0 Cleanup ext/dom: Removal of unimplemented dummy classes.
The following classes were registered in ext/dom but
neither documented nor had any behavior (only test data).
These classes are now removed:

- DOMNameList
- DomImplementationList
- DOMConfiguration
- DomError
- DomErrorHandler
- DOMImplementationSource
- DOMLocator
- DOMUserDataHandler
- DOMTypeInfo
2019-09-17 23:45:06 +02:00
Derick Rethans 07d0ebb15b Merge branch 'PHP-7.4' 2019-09-17 17:34:31 +01:00
Nikita Popov 31b9b656b4 Merge branch 'PHP-7.4' 2019-09-17 17:34:31 +02:00
Christoph M. Becker 9a734c5c19 Implement NUL byte checks for dbnames
Since we're passing these parameter to C functions accepting `char*`
without any further checking, we should reject strings with NUL bytes
in the first place.
2019-09-17 16:37:28 +02:00
Nikita Popov 8a66cb35a3 Merge branch 'PHP-7.4' 2019-09-17 16:18:03 +02:00
Nikita Popov 4ea28680a9 Merge branch 'PHP-7.4' 2019-09-17 15:43:57 +02:00
Dmitry Stogov 50527aa49b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed CLI/CGI/FPM build, when they are built together with Apache SAPI
2019-09-17 15:44:40 +03:00
Nikita Popov 2cafaab885 Merge branch 'PHP-7.4' 2019-09-17 13:15:01 +02:00
Nikita Popov 31c6c861a2 Merge branch 'PHP-7.4' 2019-09-17 12:55:18 +02:00
Nikita Popov f613e32058 Merge branch 'PHP-7.4' 2019-09-17 12:19:57 +02:00
Nikita Popov 8af9043766 Merge branch 'PHP-7.4' 2019-09-17 12:18:01 +02:00
Nikita Popov b8c0e17f33 Merge branch 'PHP-7.4' 2019-09-17 12:07:23 +02:00
Nikita Popov c1adb7a74e Move scripts out of corpus/ directory 2019-09-16 20:18:29 +02:00
Nikita Popov c4e2ca607f Various improvements to fuzzer SAPIs 2019-09-16 16:04:10 +02:00
Stanislav Malyshev 41f45647f9 Add fuzzer SAPIs to the core 2019-09-16 16:04:09 +02:00
Christoph M. Becker 9b9fac78b0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78429: opcache_compile_file(__FILE__); segfaults
2019-09-16 16:01:49 +02:00
Christoph M. Becker e6b1f9d56d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
2019-09-16 15:55:58 +02:00
Fabien Villepinte 7e8f11531e Make some session tests more robust 2019-09-16 15:20:32 +02:00
Nikita Popov d26eb10f08 Merge branch 'PHP-7.4' 2019-09-16 15:01:22 +02:00
Christoph M. Becker 23de7b14db Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78516: password_hash(): Memory cost is not in allowed range
2019-09-16 14:59:22 +02:00
Nikita Popov 02da1fe490 Merge branch 'PHP-7.4' 2019-09-16 14:38:19 +02:00
Nikita Popov c749a3ef67 Merge branch 'PHP-7.4' 2019-09-16 13:53:44 +02:00
Nikita Popov f487cd81ba Merge branch 'PHP-7.4' 2019-09-16 13:03:18 +02:00
Nikita Popov bbfe298fb6 Merge branch 'PHP-7.4' 2019-09-16 12:00:26 +02:00
Nikita Popov ad839e5fca Merge branch 'PHP-7.4' 2019-09-16 11:40:13 +02:00
Dmitry Stogov c2f937e134 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed typos
2019-09-16 10:30:02 +03:00
Thomas Gerbet ef27bd60d0 Add stubs for ext-hash 2019-09-16 09:17:47 +02:00
Christoph M. Becker 7a20ba43d3 Add missing ZPP_none() 2019-09-15 21:30:15 +02:00
Christoph M. Becker 5a79b4b938 Merge branch 'PHP-7.4'
* PHP-7.4:
  Stick with zend_long for ABI compatibility
2019-09-15 15:14:46 +02:00
Christoph M. Becker a858a53c07 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78535: auto_detect_line_endings value not parsed as bool
2019-09-14 18:49:00 +02:00
Nikita Popov 3372a24b99 Merge branch 'PHP-7.4' 2019-09-14 12:10:15 +02:00
Nikita Popov a86e04876b Merge branch 'PHP-7.4' 2019-09-14 00:25:39 +02:00
Nikita Popov b6d138fba1 Merge branch 'PHP-7.4' 2019-09-13 18:23:47 +02:00
Nikita Popov 04c45edf35 Merge branch 'PHP-7.4' 2019-09-13 14:37:28 +02:00
Dmitry Stogov 78a890e45f Merge branch 'PHP-7.4'
* PHP-7.4:
  Make constant and copy propagation only for IS_TMP_VAR operands
2019-09-13 12:39:45 +03:00
Dmitry Stogov 8a673e9380 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed incorrect usage of QM_ASSIGN instruction
2019-09-13 12:13:25 +03:00
Dmitry Stogov cf4c4ee900 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78531 (Crash when using undefined variable as object
2019-09-13 01:43:40 +03:00
Dmitry Stogov 86a56f89a3 Use zval_try_get_tmp_string() instead of zval_get_tmp_string() for cheaper EG(exception) check 2019-09-13 00:20:06 +03:00
Dmitry Stogov 0a7233f2aa Avoid reloading 2019-09-12 20:13:31 +03:00
Dmitry Stogov 358a6b4c31 Reorder conditions 2019-09-12 19:43:45 +03:00
Dmitry Stogov 8b10fcd3e7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Load string once
2019-09-12 18:53:26 +03:00
Dmitry Stogov 13fd8c533c Merge branch 'PHP-7.4'
* PHP-7.4:
  Eliminate checks using ZEND_CONST_COND() macro
2019-09-12 18:29:58 +03:00
Nikita Popov f61f122b9a Merge branch 'PHP-7.4' 2019-09-12 16:41:45 +02:00
Christoph M. Becker b59f6e4fb1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix exif build
  NEWS
2019-09-12 09:14:27 +02:00
Kalle Sommer Nielsen c2d661c2e1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78442 ('Illegal component' on exif_read_data since PHP7)
2019-09-12 06:34:35 +03:00
Nikita Popov a09da43888 Merge branch 'PHP-7.4' 2019-09-11 17:05:07 +02:00
Nikita Popov a97645eb0a Merge branch 'PHP-7.4' 2019-09-11 16:51:30 +02:00
Nikita Popov 403396e42c Merge branch 'PHP-7.4' 2019-09-11 16:30:59 +02:00
Nikita Popov 7992a712a9 Merge branch 'PHP-7.4' 2019-09-11 12:02:39 +02:00
Nikita Popov 9ca21b9d0a Merge branch 'PHP-7.4' 2019-09-11 11:13:33 +02:00
Nikita Popov f10eb9f756 Merge branch 'PHP-7.4' 2019-09-11 10:32:27 +02:00
Nikita Popov c70bab7b24 Merge branch 'PHP-7.4' 2019-09-11 09:53:18 +02:00
Dmitry Stogov e5af673e45 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bad format string
2019-09-11 00:53:30 +03:00
Sara Golemon 76fa2111e0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump for 7.2.24
2019-09-10 13:05:56 -04:00
Remi Collet 3d7cd00e97 Merge branch 'PHP-7.4'
* PHP-7.4:
  Raise minimal GCC version, Test with 4.8 is OK With 4.4: error: #pragma GCC diagnostic not allowed inside functions
2019-09-10 16:30:39 +02:00
Christoph M. Becker bd57fc747f Merge branch 'PHP-7.4'
* PHP-7.4:
  PHP 7.3.10RC1 has been tagged
2019-09-10 15:13:52 +02:00
Peter Cowburn 4253811c42 upgrading notes for ValueError/zend_value_error() 2019-09-10 13:19:24 +01:00
Dmitry Stogov 02c83b809a ceanup 2019-09-10 15:12:42 +03:00
Christoph M. Becker 4f4074328c Prefer ValueError over Error in GD
Cf. <https://github.com/php/php-src/pull/4682>.
2019-09-10 12:37:42 +02:00
Florian Weimer aeaab8ee3e Port various autoconf bits to C99 compilers
C99 no longer has implicit function declarations and implicit ints.
Current GCC versions enable them as an extension, but this will
change in a future GCC version.
2019-09-10 12:32:14 +02:00
Dmitry Stogov 0128f6eb84 Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS entry, test and minor cleanup for FFI::isNull()
  add FFI::isNull() to check whether a FFI\CData is a null pointer
2019-09-10 11:34:08 +03:00
Dmitry Stogov 989959fb16 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Drop regression test
2019-09-10 11:23:53 +03:00
Christoph M. Becker 2bb77e6367 Merge branch 'PHP-7.4'
* PHP-7.4:
  Drop regression test
2019-09-10 10:09:02 +02:00
Dmitry Stogov d40d0faa90 Merge branch 'PHP-7.4'
* PHP-7.4:
  Stop after exceptions
2019-09-10 11:02:03 +03:00
Christoph M. Becker 396be33ca5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Request #77863: PDO firebird support type Boolean in input parameters
2019-09-10 09:23:05 +02:00
Peter Cowburn a43679632b raise ValueError from imagecreate/imagecreatetruecolor
Raise a ValueError instead of a plain Error when calling imagecreate()
or imagecreatetruecolor() with too big or small values for the width or
height arguments.
2019-09-09 21:06:00 +01:00
Peter Cowburn bc61997571 add ValueError
ValueError is intended to be thrown when a function or method receives
an argument that has the right type (incorrect type should throw a
TypeError) but an inappropriate value.
2019-09-09 21:06:00 +01:00
Dmitry Stogov 628fd6ec71 clenup 2019-09-09 22:40:28 +03:00
Dmitry Stogov f43fe067e9 Avoid hash value recalculation on each counter update 2019-09-09 21:25:54 +03:00
Christoph M. Becker 8aff6627b4 Merge branch 'PHP-7.4'
* PHP-7.4:
  new_variable '{' expr '}' is deprecated as well
2019-09-09 19:06:43 +02:00
Ivan Enderlin dce8d19fc1 Mention that arg_info[-1] holds the return info
I lost some time trying to know how to find the returned type.
It's not that obvious it is stored in the _argument_ information array.

For the sake of Internet, here is the full code checking that a function _has_ a returned type:

```c
zend_function *function = /* e.g. fci_cache->function_handler */;

if (!(function->op_array.fn_flags & ZEND_ACC_HAS_RETURN_TYPE)) {
    php_printf("no return type\n");
} else {
    php_printf("has a return type\n");
    php_printf("return type = %s\n", zend_get_type_by_const(ZEND_TYPE_CODE(function->common.arg_info[-1].type)));
}
```
2019-09-09 17:42:26 +02:00
Nikita Popov fc4e73b383 Merge branch 'PHP-7.4' 2019-09-09 17:30:07 +02:00
Nikita Popov 004f31c434 Merge branch 'PHP-7.4' 2019-09-09 17:19:12 +02:00
Nikita Popov f2b7a4393a Merge branch 'PHP-7.4' 2019-09-09 17:15:41 +02:00
Christoph M. Becker c4931715c0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix version
2019-09-09 15:44:56 +02:00
Christoph M. Becker 8c7ee916ee Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78510: Partially uninitialized buffer returned by sodium_crypto_generichash_init()
2019-09-09 15:33:36 +02:00
Nikita Popov c288dfc075 Merge branch 'PHP-7.4' 2019-09-09 14:24:39 +02:00
Remi Collet 8aab32ff5f Merge branch 'PHP-7.4'
* PHP-7.4:
  zip edxtension is now 1.15.5
  fix type consistency after 8f897f1040
2019-09-09 14:22:24 +02:00
Nikita Popov f16ad678f7 Merge branch 'PHP-7.4' 2019-09-09 11:37:36 +02:00
Nikita Popov 09e9c4f3c1 Merge branch 'PHP-7.4' 2019-09-09 10:50:30 +02:00
Nikita Popov 7b0eb5b9be Merge branch 'PHP-7.4' 2019-09-09 10:11:54 +02:00
Peter Kokot 3cebb99773 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix #78349: Bundled pcre2 library missing LICENCE file
2019-09-08 21:50:06 +02:00
蝦米 66f3fc9f79 fix missing close bracket
[ci skip][skip ci]
2019-09-08 18:09:43 +02:00
Nikita Popov 81fcd76a25 Merge branch 'PHP-7.4' 2019-09-07 22:48:12 +02:00
Dmitry Stogov bf501cbbea Merge branch 'PHP-7.4'
* PHP-7.4:
  Link executable files using non PIC object files. This reduces PIC overhead and improves performance.
2019-09-07 11:59:26 +03:00
Nikita Popov ee4b11c668 Detect calls to abstract methods in get_method() already
Instead of checking for this during DO_FCALL, already detect this
case during get_method()/get_static_method(), similar to visibility
checks.

This causes a minor difference in behavior, in that arguments will
no longer be evaluated. I think this is correct though (and consistent
with visibility errors).
2019-09-06 15:05:24 +02:00
Nikita Popov 8522cdd6fa Merge branch 'PHP-7.4' 2019-09-06 15:00:17 +02:00
Nikita Popov 2789ad982e Merge branch 'PHP-7.4' 2019-09-06 14:48:31 +02:00
Nikita Popov 675e3c33cb Merge branch 'PHP-7.4' 2019-09-06 14:36:50 +02:00
Nikita Popov 790ed7d540 Enable display_startup_errors by default 2019-09-06 14:33:03 +02:00
Nikita Popov e530a89c00 Merge branch 'PHP-7.4' 2019-09-06 11:33:36 +02:00
Dmitry Stogov 64b2ee606c Merge branch 'non_pic'
* non_pic:
  Link executable files using non PIC object files. This reduces PIC overhead and improves performance.
2019-09-06 11:45:43 +03:00
Christoph M. Becker 53c002e257 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix version
2019-09-05 19:37:43 +02:00
Christoph M. Becker f895b7557e Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix version
2019-09-05 19:35:12 +02:00
Christoph M. Becker 8c9efdf720 Fix version
7.3.10 is next, not 7.3.11.
2019-09-05 19:33:17 +02:00
Stanislav Malyshev 58dd6996d1 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix version
2019-09-05 09:56:20 -07:00
Nikita Popov edf5896a4e Merge branch 'PHP-7.4' 2019-09-05 18:29:30 +02:00
Dmitry Stogov 9513b20738 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Microoptimization (avoid code duplication)"
2019-09-05 15:35:42 +03:00
Dmitry Stogov 1b5d41751f Merge branch 'PHP-7.4'
* PHP-7.4:
  Microoptimization (avoid code duplication)
2019-09-05 13:45:25 +03:00
Dmitry Stogov 34d98490df Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Load execute_data without global regs
2019-09-05 13:21:47 +03:00
Nikita Popov d9750ac41e Load execute_data without global regs 2019-09-05 10:46:50 +02:00
Dmitry Stogov 0f8bb9e37d Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HOT attribute from some VM handlers. Comparisons almost always followed by JMPZ/JMPNZ; JMPZNZ is rare used.
  Remove --with-zlib-dir option from mysqlnd config
2019-09-05 11:43:13 +03:00
Nikita Popov 7ed5fa4a86 Merge branch 'PHP-7.4' 2019-09-05 10:40:45 +02:00
Nikita Popov 5d490742cb Fix deprecated args freeing with JIT
I'm including the logic for this rare case in the helper function
to avoid complicating the main JIT logic.
2019-09-05 10:05:46 +02:00
Nikita Popov 395e87d497 Merge branch 'PHP-7.4' 2019-09-04 15:33:16 +02:00
Mark 5af8361060 Warnings to Errors: imagesetstyle 2019-09-04 15:21:59 +02:00
Mark 4a1f0eb9d3 Warnings to errors in imageaffinematrix*() 2019-09-04 15:18:07 +02:00
Mark 06a3dd536d Warnings to errors in imagecrop(auto) 2019-09-04 15:12:04 +02:00
Nikita Popov b02f425b6c Merge branch 'PHP-7.4' 2019-09-04 12:47:21 +02:00
Mark d1f9ab11b3 Warnings to errors imageconvolution 2019-09-04 12:42:17 +02:00
Mark 34865f54e7 Warnings become errors for imagepolygon et al 2019-09-04 12:35:48 +02:00
Mark 87dbb32246 Negative checks for gamma 2019-09-04 12:31:01 +02:00
Mark af8ecb39ae Warnings for image colour range check now throw exceptions 2019-09-04 12:27:08 +02:00
Mark 6c6c109e24 Warnings to errors for imagecreatefromgd2part
We also delete tests which were duplicates of a completely unrelated
test.
2019-09-04 12:22:27 +02:00
Mark 6a05e42459 Warnings to Errors imagetruecolortopalette 2019-09-04 12:14:34 +02:00
Mark fde52e8a2c Warnings to Errors imagecreate(truecolor)
We also add a test helper which we will be using for other GD functions
as well.
2019-09-04 12:09:07 +02:00
Christoph M. Becker 616027cf69 Add ext/xmlreader stubs 2019-09-04 11:55:33 +02:00
Christoph M. Becker f3dad0400c Add missing zend_parse_paramters_none() 2019-09-04 11:26:51 +02:00
Dmitry Stogov 8e6d0d0975 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78488 (OOB in ZEND_FUNCTION(ffi_trampoline)).
2019-09-04 12:16:54 +03:00
Dmitry Stogov 39e655433a Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Add missing opcache return types for functions in spl
2019-09-04 12:15:15 +03:00
Dmitry Stogov 8a393ec886 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78488 (OOB in ZEND_FUNCTION(ffi_trampoline)).
2019-09-04 12:14:15 +03:00
Dmitry Stogov d03d369fdb Fixed bug #78488 (OOB in ZEND_FUNCTION(ffi_trampoline)). 2019-09-04 12:13:49 +03:00
Nikita Popov 91b69beec8 Merge branch 'PHP-7.4' 2019-09-04 11:12:56 +02:00
Christoph M. Becker 227f51683f Declare nullable arguments in stubs 2019-09-04 09:55:27 +02:00
Christoph M. Becker 68edbbfe76 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add the last missing SKIPIF
2019-09-04 08:54:07 +02:00
Christoph M. Becker 6bd5567ce7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIF (mbstring)
2019-09-04 08:51:24 +02:00
Fabien Villepinte 2eae7897c3 Add missing SKIPIF (xml) 2019-09-04 08:46:13 +02:00
Christoph M. Becker 789e8e174a Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIF (openssl)
2019-09-04 08:43:51 +02:00
Christoph M. Becker e6d2ef1047 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIF (sqlite)
2019-09-04 08:39:34 +02:00
Christoph M. Becker aa7308e0a8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIF
2019-09-04 08:36:39 +02:00
Christoph M. Becker 000cc04909 Fix default value 2019-09-03 22:51:57 +02:00
Dmitry Stogov 56e880af9f Link executable files using non PIC object files. This reduces PIC overhead and improves performance. 2019-09-03 23:42:22 +03:00
Christoph M. Becker 6926018bda Merge branch 'PHP-7.4'
* PHP-7.4:
  Document opcache.preload_user directive
2019-09-03 14:08:52 +02:00
Nikita Popov cc4af3513d Merge branch 'PHP-7.4' 2019-09-03 13:59:59 +02:00
Christoph M. Becker 714561d0ee Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #41997: SP call yields additional empty result set
2019-09-03 13:33:52 +02:00
Dmitry Stogov 3be83233c3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Execute preload script under user defined by opcache.preload_user directive
2019-09-03 14:23:44 +03:00
Christoph M. Becker 37713c80e4 Don't explicitly set return value on ZPP failure in ext/xml
Failing ZPP throws as of PHP 8.0.0, so explicitly setting a return
value is useless, and also slightly confusing.
2019-09-03 13:12:05 +02:00
Christoph M. Becker 7e8b3dd542 Add ext/xml stubs 2019-09-03 13:07:20 +02:00
Nikita Popov 9d4a9ad0c7 Merge branch 'PHP-7.4' 2019-09-03 12:28:35 +02:00
Nikita Popov 52d31bf139 Don't perform coercions in internal func return type assertion
The returned value must match the specified type exactly, as we
can't perform any coercions in non-debug builds.

Fix incorrect stub for easter_date() that slipped through the
assertion for this reason...
2019-09-03 12:16:04 +02:00
Nikita Popov 24d8cbce54 Fix gen_stubs with out-of-tree build
We need to prefix with $(top_srcdir).
2019-09-03 11:38:02 +02:00
Nikita Popov 597a5da027 Support computing func info from ret arg info for internal funcs 2019-09-03 10:32:47 +02:00
Nikita Popov 3cca014ce4 Remove duplicate func info for array_key_first/last
Looks like this was already added in master separately...
2019-09-03 10:31:39 +02:00
Nikita Popov d4a7d17b9a Merge branch 'PHP-7.4' 2019-09-03 09:58:29 +02:00
Nikita Popov d440a3cddb Merge branch 'PHP-7.4' 2019-09-03 09:53:51 +02:00
Nikita Popov 53fdcd718b Merge branch 'PHP-7.4' 2019-09-03 09:50:23 +02:00
Nikita Popov 2bfbb16ff2 Merge branch 'PHP-7.4' 2019-09-03 09:44:09 +02:00
Tyson Andre 149588280b Fix opcache optimizer info for time_nanosleep (again)
Fixes my earlier PR #4617

If I remember correctly,
The F0 macro is used for return values that are guaranteed to not be
reference counted.
The F1 macro is used for return values that may have up to 1 reference
(i.e. MAY_BE_RC1).

I didn't notice that time_nanosleep needed to be F1 since it could
return an array, and that array is reference counted.
2019-09-03 09:31:01 +02:00
Christoph M. Becker 2b061654bf Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing argument checks
2019-09-03 09:28:48 +02:00
Nikita Popov 7f78f839dc php_stream_from_zval can no longer return false 2019-09-03 09:25:50 +02:00
Nikita Popov 3ac0f42c40 Merge branch 'PHP-7.4' 2019-09-03 09:24:20 +02:00
Christoph M. Becker 7695049b86 Don't explicitly set return value on ZFR failure in ext/xmlwriter
Failing `zend_fetch_resource(2)` throws as of PHP 8.0.0, so explicitly
setting a return value is useless, and also slightly confusing.
2019-09-03 09:17:08 +02:00
Christoph M. Becker 489dec18fc Add ext/xmlwriter stubs 2019-09-03 09:11:42 +02:00
Dmitry Stogov 0581508ba4 Fixed pow() function info 2019-09-02 21:44:10 +03:00
Dmitry Stogov 53b3a449bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Update PHP_API_VERSION
2019-09-02 19:03:45 +03:00
Nikita Popov 4fc4249d24 Make ReflectionType an abstract class
This is never instantiated directly, only child classes are used.
2019-09-02 15:38:56 +02:00
Christoph M. Becker 6ca2e1db8e Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-09-02 15:22:19 +02:00
Christoph M. Becker 6ea698869c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #76577: outdated documentation concerning track_errors
2019-09-02 15:07:48 +02:00
Nikita Popov bdf2cd7508 Move isBuiltin() method from ReflectionType to ReflectionNamedType
This method only makes sense for single types, e.g. it would be
meaningless for union types.

Note that we always return ReflectionNamedType right now, so this does
not break compatibility for code using any currently existing types.
2019-09-02 14:59:31 +02:00
Nikita Popov 603b9c43cb Add arg type assertions to DO_ICALL
Now that DO_ICALL is also used for functions with type hints, we
should include the arginfo sanity check assertions in there as
well.
2019-09-02 14:30:51 +02:00
Dmitry Stogov 33e10fe1cb Merge branch 'PHP-7.4'
* PHP-7.4:
  Free two bits in fn_flags by merging ZEND_ACC_HEAP_RT_CACHE/ZEND_ACC_USER_ARG_INFO and ZEND_ACC_DONE_PASS_TWO/ZEND_ACC_ARENA_ALLOCATED that may be used only for user/internal functions
2019-09-02 14:20:01 +03:00
Dmitry Stogov 633c5886bc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed information about unused flags
2019-09-02 12:50:40 +03:00
Dmitry Stogov a5597312e4 Fixed performance degradation caused by arg_info of internal function 2019-09-02 12:11:18 +03:00
Nikita Popov d19ecd0f33 Fix typo in type 2019-09-02 10:55:51 +02:00
Nikita Popov ea5854ca8c Make error_reporting=E_ALL the default 2019-09-02 10:03:26 +02:00
Nikita Popov f50f7418b5 Merge branch 'PHP-7.4' 2019-09-02 09:37:41 +02:00
George Peter Banyard d0754b86b1 Promote warnings to errors in substr_count() 2019-08-31 23:37:04 +02:00
George Peter Banyard 0240b903c5 Promote warnings to errors in substr_compare() 2019-08-31 23:34:24 +02:00
George Peter Banyard c072ef71ee Merge branch 'PHP-7.4'
* PHP-7.4:
  Drop E_STRICT notice in mysqli extension
2019-08-31 23:17:21 +02:00
Nikita Popov 11819efb4f Merge branch 'PHP-7.4' 2019-08-30 17:25:27 +02:00
Nikita Popov ec9297592e Check zpp before other errors in SoapServer::addSoapHeader() 2019-08-30 17:03:25 +02:00
Nikita Popov 82d9f14532 Merge branch 'PHP-7.4' 2019-08-30 16:37:20 +02:00
Nikita Popov c217e31d0d Merge branch 'PHP-7.4' 2019-08-30 16:10:11 +02:00
Nikita Popov ded9b987bb Merge branch 'PHP-7.4' 2019-08-30 16:08:05 +02:00
Nikita Popov 06c257ec4b Enable JIT on community_job 2019-08-30 15:08:08 +02:00
Nikita Popov 24b1c2447c JIT: Fix missing free on JMPZ_EX with op1 == res
We need to free the operand before we overwrite it with the result.
2019-08-30 14:50:22 +02:00
Nikita Popov 65fa6dac19 Add jit_bisect_limit
To help identify which function is being miscompiled.
2019-08-30 14:50:22 +02:00
Christoph M. Becker 39ab4104ed Remove duplicate md5/sha1 implementation
This code was actually unused since its introduction, and since at
least the md5 implementation in the core was completely overhauled,
we're dropping the md5 and sha1 related stuff from ext/hash.
2019-08-30 13:21:48 +02:00
Nikita Popov 69cf535261 Fix func info for chop()
chop() is an alias of rtrim() and may return copied strings, so
should use FN.
2019-08-30 11:18:47 +02:00
Nikita Popov be8247101d Merge branch 'PHP-7.4' 2019-08-30 11:02:40 +02:00
Nikita Popov 1bbdb6a674 Disable symfony build on master 2019-08-30 10:46:42 +02:00
Nikita Popov 8239b58bea Fix closure extra args freeing for JIT as well 2019-08-30 10:35:41 +02:00
Nikita Popov 2879ab46c0 Merge branch 'PHP-7.4' 2019-08-30 10:33:12 +02:00
Nikita Popov 23b1638622 Merge branch 'PHP-7.4' 2019-08-30 10:07:52 +02:00
George Peter Banyard 1f647ab4ca Move and fix scandir related bug test 2019-08-30 09:50:04 +02:00
George Peter Banyard b3d725218d Promote warnings to errors in dir stdlib extension 2019-08-30 09:50:04 +02:00
Peter Kokot 9bd0cce819 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix #78460: PEAR installation failure
2019-08-30 04:32:30 +02:00
George Peter Banyard 6c0eb1be33 Promote warnings to errors in assert_options() 2019-08-29 23:10:37 +02:00
George Peter Banyard dd10e70d0c Promote Directory handler warning to error 2019-08-29 23:08:25 +02:00
Nikita Popov 0d8a399afa Merge branch 'PHP-7.4' 2019-08-29 19:07:59 +02:00
Mark 1f863399d5 Warnings to Errors hash_equals 2019-08-29 16:13:06 +02:00
Mark e18bac96b7 Errorfy hash_pbkdf2 2019-08-29 16:11:21 +02:00
Mark ee104cf1bb Warnings become errors for hash_hkdf 2019-08-29 16:10:40 +02:00
Mark 960da6dff8 Warnings become errors hash stream functions (other than hash_init) 2019-08-29 16:10:08 +02:00
Mark 14c07fef74 Warnings become errors hash_init 2019-08-29 16:09:29 +02:00
Mark 21587854b4 Warnings become errors hash_hmac hash_hmac_file 2019-08-29 16:08:16 +02:00
George Peter Banyard 62751b0d45 Promote warnings to errors in array_walk(_recursive)() 2019-08-29 16:02:59 +02:00
George Peter Banyard 81277a104c Promote warnings to errors in compact() 2019-08-29 16:02:20 +02:00
George Peter Banyard 20edea5a85 Promote warnings to errors in array_merge(_recursive)() and array_replace() 2019-08-29 16:01:39 +02:00
Nikita Popov 3da3b4c8f8 Merge branch 'PHP-7.4' 2019-08-29 14:47:30 +02:00
Nikita Popov d00036e625 Merge branch 'PHP-7.4' 2019-08-29 12:34:31 +02:00
George Peter Banyard 70e604ee46 Promote warnings to errors in extract() 2019-08-28 23:15:01 +02:00
Christoph M. Becker 4669c53fcc Don't explicitly set return value on ZFR failure in ext/odbc
Failing `zend_fetch_resource(2)` throws as of PHP 8.0.0, so explicitly
setting a return value is useless, and also slightly confusing.
2019-08-28 18:53:26 +02:00
Nikita Popov e04eb28375 Merge branch 'PHP-7.4' 2019-08-28 18:18:25 +02:00
Christoph M. Becker 8417bc19b8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78473: odbc_close() closes arbitrary resources
2019-08-28 18:10:33 +02:00
Nikita Popov ad661375e8 Merge branch 'PHP-7.4' 2019-08-28 17:36:31 +02:00
Christoph M. Becker 0201a858d0 Add ext/odbc stubs 2019-08-28 17:05:28 +02:00
Nikita Popov 6323c13e74 Merge branch 'PHP-7.4' 2019-08-28 17:04:55 +02:00
Christoph M. Becker afb69b6f2d Fix test regarding ZPP TypeErrors
We simply remove the second call to `odbc_data_source` since it is
testing standard ZPP behavior.
2019-08-28 16:45:05 +02:00
Nikita Popov 3f339ec15f Merge branch 'PHP-7.4' 2019-08-28 12:32:22 +02:00
Nikita Popov 937d5f6598 Compute needle end only after checking it's non-empty 2019-08-28 09:32:18 +02:00
Stanislav Malyshev 8cefd7c5ce Merge branch 'PHP-7.4'
* PHP-7.4:
  Upgrade oniguruma lib to 6.9.3
2019-08-28 00:12:08 -07:00
George Peter Banyard 9fc3d5da11 Promote warnings to errors in max() 2019-08-27 23:41:22 +02:00
George Peter Banyard b91a881b32 Promote warnings to errors in min() 2019-08-27 23:38:22 +02:00
Nikita Popov a8792887d9 Merge branch 'PHP-7.4' 2019-08-27 22:01:59 +02:00
Nikita Popov 99ce142f6e Some pcntl cleanup
Fix some indentation issues and make sure zpp is used consistently.
2019-08-27 17:25:19 +02:00
Nikita Popov deb5226b31 Merge branch 'PHP-7.4' 2019-08-27 17:03:29 +02:00
Christoph M. Becker 29925cef47 Merge branch 'PHP-7.4'
* PHP-7.4:
  add ffi to php.ini extension [ci skip]
2019-08-27 15:54:18 +02:00
Anatol Belski ad3c763e2c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix signature and calls
2019-08-27 14:35:06 +02:00
Christoph M. Becker a748f7347d Merge branch 'PHP-7.4'
* PHP-7.4:
  Update SDK version for AppVeyor
2019-08-27 13:36:41 +02:00
Nikita Popov d93b094584 Throw TypeError from VM implementation of get_class()
The normal function already throws TypeError through the usual zpp
mechanism, but the VM implementation handles this manually and has
not been updated.
2019-08-27 09:37:48 +02:00
Nikita Popov f107b670da Add skipifs for zmm 2019-08-27 09:12:22 +02:00
Nikita Popov 085ddd0cde Fix chunk_split test on i386 release 2019-08-27 09:09:03 +02:00
Jakub Zelenka 71e2c97ffb Merge branch 'PHP-7.4' 2019-08-26 18:12:35 +01:00
Craig Duncan 4836660b90 Convert fileinfo functions arginfo to php stubs
We also allow the context for finfo to be null.
2019-08-26 18:13:58 +02:00
Nikita Popov 38c2230d07 Merge branch 'PHP-7.4' 2019-08-26 17:54:00 +02:00
Craig Duncan 743591458c Convert exif functions arginfo to php stubs
We also allow sections needed to be null.
2019-08-26 17:25:12 +02:00
George Peter Banyard 5b09e6043c Remove memory exhaustion checks in php_chunk_split() 2019-08-26 17:14:49 +02:00
George Peter Banyard 6d578482a9 Improve strpos and strstr function family implementation 2019-08-26 17:11:37 +02:00
Nikita Popov ade97c207c Merge branch 'PHP-7.4' 2019-08-26 16:12:47 +02:00
Christoph M. Becker 0ab4fca8e3 Add ext\opcache stubs 2019-08-26 16:05:01 +02:00
Burak Çakırel d2210dc2ea Add assert arginfo stubs
Closes GH-4619.
2019-08-26 15:41:31 +02:00
Nikita Popov a98307df87 Make arginfo printing of prefer-ref arguments nicer 2019-08-26 15:39:39 +02:00
Christoph M. Becker e047e9d893 Add ext/ffi stubs 2019-08-26 15:25:27 +02:00
Nikita Popov 0c2d4d698c Make sure that params with null default are marked nullable 2019-08-26 14:34:28 +02:00
Nikita Popov a47f170a75 Assert that symbol table is available in compact()
I believe NULL here is no longer possible due to the dynamic call
check. A similar assumption already exists in the extract()
implementation.
2019-08-26 14:25:48 +02:00
Christoph M. Becker 99c57b33cf Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace deprecated libzip functions
2019-08-26 14:06:08 +02:00
George Peter Banyard c1c8538f95 Promote warnings to errors in array_rand() 2019-08-26 13:31:02 +02:00
Nikita Popov 0038db2251 Avoid duplicate "non well-formed" warning
The arginfo checking code for internal functions should not generate
this warning, as it will be thrown by zpp.
2019-08-26 13:16:02 +02:00
Theodore Brown d5f42d68c8 Convert remaining array function arginfo to PHP stubs 2019-08-26 12:53:00 +02:00
viest 48040cf345 Remove deprecated getaddrinfo flags
The AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES have
been deprecated by glibcs, and PHP 7.4 follows this deprecation.

This removes the offending flags for PHP 8.0.
2019-08-26 11:45:31 +02:00
George Peter Banyard 91f4e2e614 Promote warnings to errors in explode() 2019-08-26 11:35:03 +02:00
Nikita Popov 06a4a9ba42 Merge branch 'PHP-7.4' 2019-08-26 11:33:38 +02:00
Nikita Popov e57034a89b Merge branch 'PHP-7.4' 2019-08-26 11:15:18 +02:00
Nikita Popov e28cb9d04e Merge branch 'PHP-7.4' 2019-08-26 11:10:07 +02:00
Nikita Popov 4c70a585b7 Merge branch 'PHP-7.4' 2019-08-26 10:28:14 +02:00
Stanislav Malyshev 5a77831a53 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test
2019-08-25 20:06:50 -07:00
Stanislav Malyshev c176c666e3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #75457: heap-use-after-free in php7.0.25
2019-08-25 19:21:13 -07:00
Christoph M. Becker c8ec166cda Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78454: Consecutive numeric separators cause OOM error
2019-08-25 22:46:55 +02:00
George Peter Banyard 743729d5bf Promote warnings to errors in str_pad() 2019-08-25 20:13:27 +02:00
Christoph M. Becker 6cd821b2d1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't modify arrays passed by value
2019-08-25 18:29:08 +02:00
Christoph M. Becker 64d0416a72 Add ext/gmp stubs 2019-08-25 17:56:39 +02:00
Nikita Popov 6e3135070c Remove unnecessary haystack length check in stripos()
This falls out naturally from the following condition, because
either the needle length will be zero as well, or the needle
will be longer than the (empty) haystack.
2019-08-25 16:31:15 +02:00
Nikita Popov 4346d1b0e6 Remove unnecessary NULL check
needle_dup cannot be NULL here.
2019-08-25 16:30:16 +02:00
Nikita Popov d955ee9f6b Make string size calculation in chunk_split more precise
The +1 on the string length is unnecessary, as we need the string
length without trailing NUL byte here.

The +1 on the chunks is only necessary if there is a rest. If the
string devides into chunks exactly, we don't need an extra chunk.

This makes the allocations exactly as large as it needs to be.
2019-08-25 15:34:37 +02:00
Olumide Samson b9c961e160 Add some header and html function stub 2019-08-25 15:27:58 +02:00
Christoph M. Becker 4742b2e1de Add stubs for ext/ftp 2019-08-25 14:56:45 +02:00
Nikita Popov 3602fea659 Skip memory_limit test without ZMM 2019-08-25 09:38:49 +02:00
Stanislav Malyshev 511faf7435 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update Oniguruma to 6.9.1
2019-08-25 00:21:23 -07:00
Stanislav Malyshev 72bc4672c6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix CVE-2019-13224: don't allow different encodings for onig_new_deluxe()
  set version for release
2019-08-24 23:17:44 -07:00
George Peter Banyard 9d18f23c4c Remove 'bogus' error condition in str_pad() 2019-08-24 16:05:00 +02:00
George Peter Banyard 675e975185 Promote warning to error in zend_forbid_dynamic_call() 2019-08-23 20:01:51 +02:00
George Peter Banyard 1059e3dc39 Promote warnings to errors in str_repeat() 2019-08-23 20:01:19 +02:00
Christoph M. Becker bba7f38c4f Don't explicitly set return value on ZPP failure in ext/iconv
Failing ZPP throws as of PHP 8.0.0, so explicitly setting a return
value is useless, and also slightly confusing.
2019-08-23 18:14:46 +02:00
Christoph M. Becker d420336115 Add ext/iconv stubs 2019-08-23 18:14:45 +02:00
Nikita Popov 4e4cc9b480 Merge branch 'PHP-7.4' 2019-08-23 17:23:31 +02:00
Nikita Popov 51ea7fc477 Merge branch 'PHP-7.4' 2019-08-23 17:01:49 +02:00
Nikita Popov 51905cd212 Merge branch 'PHP-7.4' 2019-08-23 15:37:07 +02:00
Nikita Popov 38ed1e6353 Merge branch 'PHP-7.4' 2019-08-23 15:27:55 +02:00
Christoph M. Becker 9f14eb114b Fix bug77812-*.phpt
Undefined constants error as of PHP 8.0.0.
2019-08-23 14:49:50 +02:00
Christoph M. Becker aa3f9c5f1c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77812: Interactive mode does not support PHP 7.3-style heredoc
2019-08-23 14:04:52 +02:00
Tyson Andre 0c09089caf Fix escapes for namespaced classes in gen_stub.php
Fix the string generated when the `ns\class` is passed to a macro

    #define ESCAPE(x) #x
    // puts(ESCAPE(ns\class));  // warning: unknown escape sequence: \c
    puts(ESCAPE(ns\\class));  // Properly prints ns\class to stdout.
2019-08-23 12:29:55 +02:00
Christoph M. Becker 9b227640c1 Empty merge 2019-08-23 12:23:36 +02:00
Christoph M. Becker 5d94ad7944 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78438: Corruption when __unserializing deeply nested structures
2019-08-23 11:41:38 +02:00
George Peter Banyard f51421c629 Promote warnings to errors in chunk_split() 2019-08-22 21:45:36 +02:00
George Peter Banyard fdff6cfd50 Promote warnings to errors in str_word_count() 2019-08-22 21:45:07 +02:00
George Peter Banyard 754d9f3da4 Promote warnings to errors in wordwrap() 2019-08-22 21:44:34 +02:00
George Peter Banyard fe44e1637a Promote warnings to errors in dirname() 2019-08-22 21:44:01 +02:00
George Peter Banyard 698491d98a Promote warnings to errors in str_split() 2019-08-22 19:33:37 +02:00
George Peter Banyard c0554fdec5 Promote warnings to errors in strtr() 2019-08-22 19:33:37 +02:00
George Peter Banyard c1fcf2d616 Promote warnings to errors in array_pad() 2019-08-22 19:30:20 +02:00
George Peter Banyard 7dcbcd4ca5 Promote warnings to errors in array_column() 2019-08-22 19:27:47 +02:00
Christoph M. Becker cee24be5b3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix var_unserializer debug code
2019-08-22 15:59:34 +02:00
George Peter Banyard ab76c613fe Normalise strr(i)pos offset messages with str(i)pos ones. 2019-08-22 12:56:32 +02:00
Thomas Gerbet 70fa43edbe Add stub for ext zlib 2019-08-22 11:01:51 +02:00
Christoph M. Becker c53064fbff Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78441: Parse error due to heredoc identifier followed by digit
2019-08-21 22:55:25 +02:00
George Peter Banyard 7d4e3dc32d Promote warnings to errors in array_combine() 2019-08-21 18:12:56 +02:00
George Peter Banyard eaf66df517 Promote warnings to errors in array_multisort() 2019-08-21 18:10:13 +02:00
George Peter Banyard c70f92caf8 Promote warning to error in array_chunk() 2019-08-21 18:07:35 +02:00
George Peter Banyard 7c6acc2eef Promote warnings to errors in range() 2019-08-21 18:05:08 +02:00
George Peter Banyard 5b8e12a99b Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead code in base64.c
2019-08-20 21:46:51 +02:00
Nikita Popov 85b17a0429 Remove some unnecessary RETURN_FALSE 2019-08-20 17:08:19 +02:00
Remi Collet 8a9e7c8858 Merge branch 'PHP-7.4'
* PHP-7.4:
  ensure proper settings for test
  Update NEWS for 7.4.0RC1
  Update NEWS for PHP 7.4.0beta4
2019-08-20 16:31:24 +02:00
Tyson Andre 50be2ecbd7 Fix opcache type info for stream_bucket_make_writable()
Closes GH-4567.
2019-08-20 16:21:53 +02:00
Christoph M. Becker 773957c36f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78386: fstat mode has unexpected value on PHP 7.4
2019-08-20 16:04:50 +02:00
Simon Podlipsky 4867864cae Add Curl ext PHP stubs
Closes GH-4557.
2019-08-20 15:16:57 +02:00
Simon Podlipsky 3b2329dae9 Add Calendar ext PHP stubs
Closes GH-4552.
2019-08-20 15:15:52 +02:00
Christoph M. Becker 9c0c20b9f8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't use C++ style comments
2019-08-20 13:59:20 +02:00
Christoph M. Becker 64c577abc5 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix the problem for connect_attr, set db condition, and add a new attribute _server_host
2019-08-20 13:35:53 +02:00
Henrique Duarte a6e1094b6e Add stubs for filter extension
Closes GH-4542.
2019-08-20 11:04:25 +02:00
Nikita Popov af5c637f96 Remove some unnecessary RETURN_FALSE uses 2019-08-20 10:35:27 +02:00
Christoph M. Becker fff6445d44 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78220: Can't access OneDrive folder
2019-08-19 19:59:08 +02:00
inem0o baeb10d736 Add sha1 arginfo stubs 2019-08-19 12:35:53 +02:00
inem0o 8150c65ae4 Add pageinfo arginfo stubs 2019-08-19 11:29:22 +02:00
inem0o b7c4d8e846 Add metaphone arginfo stubs 2019-08-19 11:18:44 +02:00
inem0o ff7900f551 Add md5 arginfo stubs 2019-08-19 09:41:46 +02:00
Benjamin Eberlei 58d661cd7d Cleanup unnecessary if guard clause to free buffer. 2019-08-18 12:28:40 +02:00
Christoph M. Becker f50c460723 Don't explicitly set return value on ZPP failure in ext/calendar
Failing ZPP throws as of PHP 8.0.0, so explicitly setting a return
value is useless, and also slightly confusing.
2019-08-17 14:23:11 +02:00
Yusuke Kawasaki 7602169d7c Fix typo: environement [ci skip] 2019-08-17 12:41:53 +02:00
Nikita Popov 0fa469ab0c Merge branch 'PHP-7.4' 2019-08-17 11:00:15 +02:00
George Peter Banyard 2505edb40d Remove useless error check for bin2hex()
And change prototype accordingly...

Closes GH-4550.
2019-08-16 23:53:53 +02:00
Sara Golemon b78347ba35 Merge branch 'PHP-7.4'
* PHP-7.4:
  Suppress deprecation warning on IDNA2003 ICU methods
2019-08-16 12:45:44 -04:00
Christoph M. Becker 2d1f371871 Don't explicitly set return value on ZPP failure
Failing ZPP throws as of PHP 8.0.0, so explicitly setting a return
value is useless, and also slightly confusing.
2019-08-16 17:54:11 +02:00
Christoph M. Becker 1f49b1df50 Don't explicitly set return value on ZPP failure
Failing ZPP throws as of PHP 8.0.0, so explicitly setting a return
value is useless, and also slightly confusing.
2019-08-16 17:52:42 +02:00
Sara Golemon c406efd406 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Move to non deprecated API on suitable ICU versions"
2019-08-16 11:42:51 -04:00
Kauan Sousa eec89ec066 Creating stub for ext bz2 2019-08-16 17:21:12 +02:00
inem0o f795bdfd30 Add lcg arginfo stubs 2019-08-16 12:56:07 +02:00
inem0o f1eca42825 Add ftok arginfo stubs 2019-08-16 12:53:11 +02:00
Nikita Popov 37a8408e83 Support typed variadic args in gen_stubs 2019-08-15 22:07:49 +02:00
Christoph M. Becker d04c85fcb5 Merge branch 'PHP-7.4'
* PHP-7.4:
  appveyor: exclude some documentation paths
2019-08-15 18:20:03 +02:00
Christoph M. Becker 76574342d7 Empty merge 2019-08-15 15:30:28 +02:00
Victor Gazotti 75a3213d19 creating stubs for echant ext 2019-08-15 15:16:56 +02:00
Christoph M. Becker a3abbc0920 Unify ZPP handling in ext/sqlite3
Since `zend_parse_parameters()` now throws on failure, it doesn't make
sense anymore to use `zend_parse_parameters_throw()` instead, and also
it's useless to set an explicit return value.
2019-08-15 13:31:02 +02:00
Christoph M. Becker e3ebdb6be2 Don't repeat yourself
SQLite3::bindParam() and SQLite3::bindValue() have identical
implementation (the only thing that differs is the second parameter's
passing mode), so we unify the implementation.
2019-08-15 13:10:53 +02:00
Craig Duncan 107c1e0c1b Convert sqlite3 functions arginfo to php stubs 2019-08-15 12:56:46 +02:00
Nikita Popov 743d27631f Normalize SimpleXML::asXML() argument handling
Remove odd manual checks in favor of a standard zpp call.
2019-08-15 11:18:56 +02:00
Nikita Popov deceafbe63 Merge branch 'PHP-7.4' 2019-08-15 10:40:45 +02:00
zhdaniel 844b261e3a Fix typo 2019-08-15 09:32:35 +02:00
Christoph M. Becker c82566dec7 Empty merge 2019-08-14 19:26:26 +02:00
Nikita Popov ded28e2435 Merge branch 'PHP-7.4' 2019-08-14 17:53:38 +02:00
Theodore Brown e2b0fb946b Add hrtime arginfo stubs 2019-08-14 16:46:10 +02:00
Victor Gazotti 262227fc9e Add some stubs at ctype ext 2019-08-14 16:43:26 +02:00
jason-liew ffffaf12cf add some stubs for array func in basic_functions 2019-08-14 15:27:58 +02:00
Stephen Reay f40cc41465 Added arginfo stub for posix extension 2019-08-14 14:40:37 +02:00
Sara Golemon 9436a2c488 Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump for 7.2.23
2019-08-13 19:34:42 -04:00
Christoph M. Becker b265bfb223 Merge branch 'PHP-7.4'
* PHP-7.4:
  Next will be 7.3.10
2019-08-14 00:49:06 +02:00
Christoph M. Becker d469e2bf56 Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump version numbers
2019-08-13 23:26:58 +02:00
Nikita Popov d0f4ec4c31 Merge branch 'PHP-7.4' 2019-08-13 20:24:39 +02:00
Nikita Popov 8c927442b4 Merge branch 'PHP-7.4' 2019-08-13 14:54:57 +02:00
Islam Israfilov 1dc88ff67e Add inet_ntop and inet_pton stubs 2019-08-13 14:52:14 +02:00
Christoph M. Becker e7ac9428d8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead code
2019-08-13 13:29:35 +02:00
Stephen Reay d4e5e63b6c Added zip arginfo stubs 2019-08-13 13:01:51 +02:00
Nikita Popov be4b66a369 Merge branch 'PHP-7.4' 2019-08-13 12:35:02 +02:00
Nikita Popov 1ae0b68404 Merge branch 'PHP-7.4' 2019-08-13 12:17:47 +02:00
Nikita Popov 9af705e753 Merge branch 'PHP-7.4' 2019-08-13 11:45:16 +02:00
inem0o ccf79547af Add crypt() function's stub
Closes GH-4515.
2019-08-13 11:28:32 +02:00
Nikita Popov 19378ae44a Merge branch 'PHP-7.4' 2019-08-13 11:23:35 +02:00
Nikita Popov 2e4f76dc80 Merge branch 'PHP-7.4' 2019-08-13 10:23:32 +02:00
inem0o fb363f7f00 add syslog arginfo stubs 2019-08-13 09:58:26 +02:00
Nikita Popov d996a8c410 Merge branch 'PHP-7.4' 2019-08-13 09:55:06 +02:00
Craig Duncan 06aa2ae993 Update the date class arginfo the new format 2019-08-12 20:57:30 +01:00
Craig Duncan 288442716e Add a prefix to differeniate between class methods and functions
Closes GH-4528
2019-08-12 20:57:18 +01:00
Christoph M. Becker ab7c3bf4bc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix WS
2019-08-12 18:00:21 +02:00
Nikita Popov f0d4c48c7e Merge branch 'PHP-7.4' 2019-08-12 17:18:14 +02:00
Stephen Reay 0b3a10aecc Add readline arginfo stubs 2019-08-12 16:03:26 +02:00
Christoph M. Becker cd57fb5140 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing argument checks
2019-08-12 15:42:26 +02:00
Kyle b17957eaac Add missing parameters to __set_state() methods
Closes GH-4526.
2019-08-12 15:20:23 +02:00
Christoph M. Becker 4281b1378e Don't explicitly set return value on ZPP/ZFR failure
Failing `zend_parse_parameters()` and `zend_fetch_resource()` throw as
of PHP 8.0.0, so explicitly setting a return value is useless, and also
slightly confusing.
2019-08-12 14:42:26 +02:00
Nikita Popov 1a9a5f995c Merge branch 'PHP-7.4' 2019-08-12 10:45:43 +02:00
Stephen Reay 9f95d68ca3 Added arginfo stubs for sysvmsg
Closes GH-4522.
2019-08-12 10:28:52 +02:00
Nikita Popov 7c49951769 Support regenerating all stubs 2019-08-12 10:27:22 +02:00
Stephen Reay 434f5329f7 Fixed inconsistent naming for stub, return type for shmop_size 2019-08-12 10:13:53 +02:00
Stephen Reay c5a7f61eca Fix return type on shmop_close 2019-08-12 10:13:52 +02:00
Stephen Reay 93efcaa9c3 Added shmop arginfo stubs 2019-08-12 10:13:52 +02:00
Stephen Reay 47b95bd83c Added arginfo stubs for sysvsem
Closes GH-4523.
2019-08-12 10:05:36 +02:00
Stephen Reay 5db3306981 Added arginfo stubs for svsvshm
Closes GH-4524.
2019-08-12 10:05:36 +02:00
Nikita Popov 429378d78d Remove some misleading RETURN_FALSE
These functions throw, so they can't return false.

This is just a subset...
2019-08-12 10:05:36 +02:00
Christoph M. Becker 193dcec529 Don't explicitly set return value on ZPP failure
Failing ZPP throws as of PHP 8.0.0, so explicitly setting a return
value is useless, and also slightly confusing.
2019-08-12 10:02:45 +02:00
Christoph M. Becker 4b6363d100 Claim maintainership of ext/com_dotnet 2019-08-11 22:28:04 +02:00
Christoph M. Becker 3e80b13682 Don't throw manual exceptions on ZPP failure
As of PHP 8.0.0, ZPP throws on failure, so manually throwing exceptions
is superfluous and confusing.
2019-08-11 22:21:08 +02:00
Christoph M. Becker 177981d80d Add com_dotnet function stubs 2019-08-11 21:46:14 +02:00
Stephen Reay cfbcd4caef Arginfo stubs for tokenizer 2019-08-11 19:03:04 +02:00
Stephen Reay 44de46ab69 Add support for callable to the stub generator [ci skip] 2019-08-11 18:37:35 +02:00
inem0o 1376f61aed Add crc32 stub 2019-08-11 18:33:58 +02:00
Derick Rethans 0835e66372 Updated to version 2019.2 (2019b) 2019-08-11 16:06:00 +01:00
Derick Rethans 7d7fd3e818 Empty merge 2019-08-11 16:06:00 +01:00
Christoph M. Becker 0c5b75b063 Fix arginfo
The second parameter of `imagexbm()` is nullable.
2019-08-11 16:41:31 +02:00
Christoph M. Becker f30501b172 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix parameter order
2019-08-11 16:18:44 +02:00
Christoph M. Becker f273204011 Merge branch 'PHP-7.4'
* PHP-7.4:
  Extend color component range checks
2019-08-11 15:23:23 +02:00
Nikita Popov 228bae7d74 Use TypeError for preg_replace type check
This is a type violation warning, and as such should use TypeError
in PHP 8.
2019-08-11 14:28:10 +02:00
Christoph M. Becker 4067519541 Fix arginfo 2019-08-11 13:54:52 +02:00
Christoph M. Becker c90a27387e Add GD function stubs 2019-08-11 13:17:24 +02:00
Stephen Reay 66b750d07e Add stubs for PCRE extension
Closes GH-4501.
2019-08-11 12:46:42 +02:00
Rimvydas Zilinskas 31d7f9763b Add partial openssl stubs
Closes GH-4509.
2019-08-10 22:19:16 +02:00
Simon Podlipsky 4799b76f39 Add BCMath PHP stubs
Closes GH-4508.
2019-08-10 22:18:04 +02:00
Craig Duncan f9980e609e Convert gettext functions arginfo to php stubs
Closes GH-4506
2019-08-10 17:17:19 +01:00
inem0o b98bc5bd92 Add base64_encode / base64_decode stubs
Closes GH-4504.
2019-08-10 17:40:10 +02:00
Craig Duncan 7e7eaa0eb2 Convert json functions arginfo to php stubs
Closes GH-4500
2019-08-10 16:04:30 +01:00
Nikita Popov ae721c488d Handle preprocessor conditions inside classes
Also remove the dead parseClass() function.
2019-08-10 16:29:45 +02:00
Stephen Reay 9c02c58481 Fallback to curl in gen_stub if wget fails
Closes GH-4502.
2019-08-10 16:21:03 +02:00
Nikita Popov 17987da884 Expand preprocessor support in gen_stubs
Support #ifdef, #ifndef, #else and nested #if's.
2019-08-10 15:07:54 +02:00
Nikita Popov d9e2d18505 Add some basic_functions stubs 2019-08-10 12:34:29 +02:00
Dmitry Stogov 172c71980d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed handling of references in nested data of objects with destructor
2019-08-09 17:47:50 +03:00
Nikita Popov 8edf59ce29 Merge branch 'PHP-7.4' 2019-08-09 16:34:47 +02:00
Nikita Popov 8e2218a36c Merge branch 'PHP-7.4' 2019-08-09 15:04:10 +02:00
Dmitry Stogov fa1e4984ab Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed bug #78391
  Make uninitialized DateTime an Error
  Generate arginfo from PHP stub files
2019-08-09 16:03:07 +03:00
Nikita Popov 4276d669d2 Merge branch 'PHP-7.4' 2019-08-09 15:02:57 +02:00
Nikita Popov 69a771346a Fixed bug #78391 2019-08-09 15:02:44 +02:00
Dmitry Stogov a037a5bd33 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed second part of the bug #78379 (Cast to object confuses GC, causes crash)
2019-08-09 15:58:44 +03:00
Nikita Popov 3b2f2ce474 Make uninitialized DateTime an Error
This avoids many spurious false return values.
2019-08-09 14:51:25 +02:00
Nikita Popov 33886f710c Generate arginfo from PHP stub files
Signature stubs for internal functions are specified in xyz.stub.php,
from which we generate actual arginfo structures in xyz_arginfo.h.
This file then needs to be included in the implementation appropriately.

Arginfo from stubs can be regenerated using scripts/dev/gen_stub.php.
However, this should also automatically happen when the stub file is
modified.
2019-08-09 14:51:25 +02:00
Dmitry Stogov 9b973550b9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added asserts to catch GC errors when refcount goes below zero.
2019-08-09 13:40:56 +03:00
Matteo Beccati 3b84238200 Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test when SIGKILL is not defined
2019-08-09 10:33:23 +02:00
Matteo Beccati 13980414eb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test when default TZ is not UTC
2019-08-09 09:58:36 +02:00
Nikita Popov e22633c4a7 Merge branch 'PHP-7.4' 2019-08-08 10:55:07 +02:00
Nikita Popov a56d1cfc00 Merge branch 'PHP-7.4'
[ci skip]
2019-08-08 10:12:43 +02:00
Nikita Popov 527dad600b Merge branch 'PHP-7.4' 2019-08-08 09:56:10 +02:00
Dmitry Stogov db4eb13b25 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78379 (Cast to object confuses GC, causes crash)
2019-08-08 10:09:04 +03:00
Christoph M. Becker 1542d1b5ed Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix detection of pg_config.h
2019-08-07 13:25:27 +02:00
Christoph M. Becker 8b5b4d8860 Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip test if ext/json is not available
2019-08-07 13:04:42 +02:00
Christoph M. Becker 2de4837b1f Merge branch 'PHP-7.4'
* PHP-7.4:
  Make extension compatibility check more liberal
2019-08-07 11:31:29 +02:00
Christoph M. Becker 932842b23e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78282: atime and mtime mismatch
2019-08-06 17:29:13 +02:00
Dmitry Stogov b912335315 Merge branch 'PHP-7.4'
* PHP-7.4:
  Inline zend_zval_ptr() in executor explicitely (only on hot paths)
2019-08-06 16:33:27 +03:00
Dmitry Stogov f64650408a Merge branch 'PHP-7.4'
* PHP-7.4:
  typo
2019-08-06 13:58:29 +03:00
Dmitry Stogov e2440c3da5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Preloading is not comatible with dl() function
2019-08-06 12:45:48 +03:00
Dmitry Stogov 4d9e5ddf7c Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't set GC_HAS_DESTRUCTORS flag if destructors were already called
  Update NEWS for 7.4.0beta3
  Update NEWS for PHP 7.4.0beta2
2019-08-06 11:37:08 +03:00
Dmitry Stogov d6a8a5ac64 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78376 (Incorrect preloading of constant static properties)
2019-08-05 22:56:03 +03:00
Christoph M. Becker 6326717dcc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix handling of succeeding XFAIL tests
2019-08-05 11:39:09 +02:00
Christoph M. Becker 85f253ae4f Merge branch 'PHP-7.4'
* PHP-7.4:
  Support calling convention specific function name mangling
2019-08-04 12:14:31 +02:00
Christoph M. Becker acac7d1a1a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78346: strip_tags no longer handling nested php tags
2019-08-02 17:05:01 +02:00
Christoph M. Becker ca8c01ea16 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78179: MariaDB server version incorrectly detected
2019-08-02 16:46:06 +02:00
Nikita Popov d4e31cc69f Merge branch 'PHP-7.4' 2019-08-02 10:38:39 +02:00
Nikita Popov 21cd438c33 Merge branch 'PHP-7.4' 2019-08-01 17:00:49 +02:00
Christoph M. Becker 7f210dd1b9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove upgrade-pcre.php script
2019-08-01 10:50:40 +02:00
Nikita Popov e63093e547 Merge branch 'PHP-7.4' 2019-08-01 10:11:02 +02:00
Christoph M. Becker f38f75f392 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix 78213: Empty row pocket
2019-07-31 18:08:19 +02:00
Peter Kokot 3e124fc1c7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix #78348: Remove -lrt from pdo_sqlite.so
2019-07-30 22:09:18 +02:00
Christoph M. Becker 075440e7d2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix tests
2019-07-30 16:33:16 +02:00
Remi Collet 0c52061d12 add php-keyring.gpg update step 2019-07-30 14:59:37 +02:00
Nikita Popov a4cfbeb143 Merge branch 'PHP-7.4' 2019-07-30 10:32:26 +02:00
Nikita Popov 2b1073eb19 Merge branch 'PHP-7.4' 2019-07-30 10:19:01 +02:00
Nikita Popov 14f99ede42 Merge branch 'PHP-7.4' 2019-07-30 10:07:25 +02:00
Christoph M. Becker 5bf12e8453 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add security related NEWS entries [ci skip]
2019-07-30 09:52:07 +02:00
Remi Collet 1afe6b530e Merge branch 'PHP-7.4'
* PHP-7.4:
  add security NEW entries + reorder [ci skip]
2019-07-30 09:27:35 +02:00
Stanislav Malyshev 4798570607 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78338: Array cross-border reading in PCRE
2019-07-29 14:51:35 -07:00
Stanislav Malyshev e043025fda Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77919: Potential UAF in Phar RSHUTDOWN
  Update NEWS
  Fix bug #78256 (heap-buffer-overflow on exif_process_user_comment)
  Fix bug #78222 (heap-buffer-overflow on exif_scan_thumbnail)
2019-07-29 13:20:59 -07:00
Nikita Popov cab6b34224 Merge branch 'PHP-7.4' 2019-07-29 21:08:39 +02:00
Christoph M. Becker 7548421202 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix build for --disable-signals
2019-07-29 18:50:13 +02:00
Nikita Popov 148954101a Merge branch 'PHP-7.4' 2019-07-29 17:34:42 +02:00
Nikita Popov 9a3aef3c21 Merge branch 'PHP-7.4' 2019-07-29 17:15:35 +02:00
Christoph M. Becker d8c2537d64 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS [ci skip]
2019-07-29 14:49:18 +02:00
Christoph M. Becker 1a3e3c8c26 Merge branch 'PHP-7.4'
* PHP-7.4:
  Document how to generate ffi_parser.c
2019-07-29 13:39:28 +02:00
Nikita Popov 45eabeca81 Merge branch 'PHP-7.4' 2019-07-29 13:03:59 +02:00
Nikita Popov c84ba44c16 Merge branch 'PHP-7.4' 2019-07-29 11:27:44 +02:00
Nikita Popov 2b10f6299b Merge branch 'PHP-7.4' 2019-07-29 11:26:36 +02:00
Nikita Popov cd1c651af1 Merge branch 'PHP-7.4' 2019-07-29 11:13:33 +02:00
Nikita Popov bc6e4b6c57 Merge branch 'PHP-7.4' 2019-07-29 10:12:58 +02:00
Christoph M. Becker 3f3aac1d07 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78342: Bus error in configure test for iconv //IGNORE
2019-07-29 08:52:11 +02:00
Peter Kokot a547af7ce2 Merge branch 'PHP-7.4'
* PHP-7.4:
  nit: Fix a typo in UPGRADING
2019-07-27 23:14:43 +02:00
Christoph M. Becker 9817382149 Merge branch 'PHP-7.4'
* PHP-7.4:
  file encoding cleanup: remove bom in win32 files
2019-07-27 10:14:14 +02:00
Peter Kokot 6b55b5ed00 Merge branch 'PHP-7.4'
* PHP-7.4:
  Mention also API versions bumps
2019-07-26 01:48:22 +02:00
Peter Kokot 62a2138fc7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typos in UPGRADING and improve wording in a few places
2019-07-26 01:17:13 +02:00
Christoph M. Becker 174aaf594f Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplication
2019-07-25 19:09:53 +02:00
Levi Morrison a688335955 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove .post files only for passing tests
2019-07-25 09:51:29 -06:00
Matteo Beccati 85aee3419c Merge branch 'PHP-7.4'
* PHP-7.4:
  Addded missing NEWS/UPGRADING entries for PDO "??" escape
2019-07-25 16:31:00 +02:00
Remi Collet 88a3e80dd1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix build warnings
2019-07-25 11:50:57 +02:00
Nikita Popov 8d39510af8 Merge branch 'PHP-7.4' 2019-07-25 10:43:50 +02:00
Peter Kokot 02cdef555d Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump PHP_JSON_VERSION to PHP_VERSION
2019-07-24 22:19:49 +02:00
Peter Kokot 9af6d5545a Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove AC_FPM_POLL
2019-07-24 22:04:24 +02:00
Peter Kokot 452356af2a Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove outdated Libtool hack for macs
2019-07-24 21:43:26 +02:00
Nikita Popov 957013c5b7 Merge branch 'PHP-7.4' 2019-07-24 20:53:19 +02:00
Dmitry Stogov 96dab0a657 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid over-specialization
2019-07-24 20:00:55 +03:00
Dmitry Stogov 30886007c1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reordering
2019-07-24 18:52:55 +03:00
Dmitry Stogov a106e52b10 Merge branch 'PHP-7.4'
* PHP-7.4:
  Delay dereference
2019-07-24 18:40:03 +03:00
Nikita Popov 890a97c6d2 Merge branch 'PHP-7.4' 2019-07-24 16:41:44 +02:00
Dmitry Stogov 1f38adb501 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid reloading
2019-07-24 17:38:42 +03:00
Dmitry Stogov 57d9b94dea Simplify TMP/VAR operand releasing 2019-07-24 14:13:40 +03:00
Nikita Popov 0fcd017340 Merge branch 'PHP-7.4' 2019-07-24 12:07:04 +02:00
Nikita Popov 8aa92c1465 Merge branch 'PHP-7.4' 2019-07-24 10:52:18 +02:00
Nikita Popov 173ebe4c44 Merge branch 'PHP-7.4' 2019-07-24 10:44:40 +02:00
Nikita Popov dc6341eb78 Merge branch 'PHP-7.4' 2019-07-24 10:07:51 +02:00
Nikita Popov 80681e8d40 Merge branch 'PHP-7.4' 2019-07-24 09:55:09 +02:00
Dmitry Stogov 3c4f38d512 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed CALL VM
2019-07-24 01:52:26 +03:00
Dmitry Stogov 43c4e4cd22 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed unspecialized executor
2019-07-24 01:43:20 +03:00
Nikita Popov d37d418927 Merge branch 'PHP-7.4' 2019-07-23 11:28:10 +02:00
Peter Kokot cef2071eb4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Update NEWS
  Update NEWS
2019-07-23 02:32:56 +02:00
Matteo Beccati 9590912854 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix FR #71885 (Allow escaping question mark placeholders)
2019-07-22 19:35:37 +02:00
Peter Kokot 7dbd25df68 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_OCILOBISTEMPORARY and HAVE_OCICOLLASSIGN
2019-07-22 19:14:30 +02:00
Nikita Popov ac555cf6ee Merge branch 'PHP-7.4' 2019-07-22 17:56:38 +02:00
Nikita Popov a1e2c8870e Merge branch 'PHP-7.4' 2019-07-22 17:26:01 +02:00
Nikita Popov 7a1540fa28 Merge branch 'PHP-7.4' 2019-07-22 17:00:17 +02:00
Remi Collet 92d6720dcf Merge branch 'PHP-7.4'
* PHP-7.4:
  cleanup gd build with system libgd - drop need to use libpng with system libgd - drop need to use libjpeg with system libgd - drop need to use libXpm with system libgd - drop need to use libfreetype with system libgd - improve configure comments
2019-07-22 16:14:36 +02:00
Peter Kokot 4ec0889bec Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_PQPUTCOPYEND
2019-07-22 16:06:12 +02:00
Peter Kokot f888f4cf4f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix internals upgrading log
  Remove HAVE_DSA_DEFAULT_METHOD
2019-07-22 16:04:20 +02:00
Christoph M. Becker ea2b8122e6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove superfluous HAVE_GD_BUNDLED checks
2019-07-22 16:00:18 +02:00
Nikita Popov a9969ec1bd Merge branch 'PHP-7.4' 2019-07-22 12:41:20 +02:00
Nikita Popov 49f848e957 Merge branch 'PHP-7.4' 2019-07-22 12:29:31 +02:00
Nikita Popov 1e95f44850 Merge branch 'master' of git.php.net:/php-src 2019-07-22 12:29:27 +02:00
Nikita Popov 36db71df47 Merge branch 'PHP-7.4' 2019-07-22 12:28:40 +02:00
Christoph M. Becker ebe91a0066 Merge branch 'PHP-7.4'
* PHP-7.4:
  Drop superfluous ENABLE_GD_TTF
2019-07-22 12:01:58 +02:00
Nikita Popov 8092604ec2 Merge branch 'PHP-7.4' 2019-07-22 11:19:32 +02:00
Dmitry Stogov c713f589c1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Initialize static_members_table
2019-07-22 12:03:35 +03:00
Dmitry Stogov 390810e1e6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Evaluate constant in class scope
2019-07-22 11:59:49 +03:00
Nikita Popov a16ca769af Merge branch 'PHP-7.4' 2019-07-22 10:34:58 +02:00
Remi Collet 2db5dfd6fc Merge branch 'PHP-7.4'
* PHP-7.4:
  improve temporary fix for system libgd
2019-07-22 09:12:48 +02:00
Peter Kokot f7f0b4c1dd Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove build.mk usage
2019-07-21 11:41:20 +02:00
Peter Kokot 9ddf7b5599 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove some unused HAVE_* symbols
2019-07-21 11:35:09 +02:00
Peter Kokot 00821b807c Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_LIBZIP
2019-07-21 11:32:53 +02:00
George Wang e4f6744552 Merge branch 'PHP-7.4' 2019-07-21 00:02:03 -04:00
Peter Kokot 65d3e142e2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Renamed MySQLi test to remove duplicate 'mysqli_'
2019-07-21 01:10:57 +02:00
Peter Kokot ca93928f99 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typos
2019-07-21 01:02:51 +02:00
Peter Kokot 7d94c90374 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix failed tests for phar
2019-07-21 00:50:27 +02:00
Peter Kokot b2bd9aeb41 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move HAVE_SQLITE3_CLOSE_V2 to pdo_sqlite
2019-07-21 00:41:20 +02:00
Peter Kokot 24fbda0505 Update changelog 2019-07-21 00:39:44 +02:00
Peter Kokot 605386e394 Remove HAVE_LOCALE_H and locale.h check
This was a left over for supporting old code in PHP extensions out there.
Check is not needed anymore since this is part of C89+ standard.

Closes GH-4445
2019-07-21 00:37:47 +02:00
Remi Collet eba877de77 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78314 (missing freetype support/functions with external gd)
2019-07-20 07:57:26 +02:00
Peter Kokot ba2864d4d8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused sqlite symbols
2019-07-20 00:27:39 +02:00
Peter Kokot 11e7c001df Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typos in FFI
2019-07-19 23:07:34 +02:00
Christoph M. Becker 257064de1a Merge branch 'PHP-7.4'
* PHP-7.4:
  Put oniguruma include path to proper CFLAGS
2019-07-19 20:05:08 +02:00
Christoph M. Becker 3060a4cf52 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move Oniguruma related config stuff to where it belongs
2019-07-19 19:31:58 +02:00
Nikita Popov a5fb908e31 Merge branch 'PHP-7.4' 2019-07-19 10:59:10 +02:00
Dmitry Stogov 97912023bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Use run-time cache to avoid repeatable hash lookups in ZEND_DECLARE_CLASS_DELAYED
2019-07-19 11:46:35 +03:00
Nikita Popov eb766751dc Merge branch 'PHP-7.4' 2019-07-19 10:06:30 +02:00
Dmitry Stogov 3cc6dd9c76 Fixed JIT 2019-07-19 10:50:51 +03:00
Dmitry Stogov a837b80a48 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use run-time cache to avoid repeatable hash lookups when creating anonymous functions and classes
2019-07-19 10:45:00 +03:00
Dmitry Stogov 5ac3580b9b Merge branch 'PHP-7.4'
* PHP-7.4:
  ZEND_DECLARE_ANON_CLASS doesn't need to skip anything now. It's immediatelly followed by ZEND_NEW.
2019-07-19 10:10:50 +03:00
Peter Kokot 265bd7d039 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove safe_mode directive when installing ext/phar
2019-07-19 00:03:06 +02:00
Dmitry Stogov dea80d708d Merge branch 'PHP-7.4'
* PHP-7.4:
  Merge common code
2019-07-18 16:50:56 +03:00
Nikita Popov e13981f981 Merge branch 'PHP-7.4' 2019-07-18 14:42:34 +02:00
Christoph M. Becker 010d6246e4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove remaining lightnings from run-tests.php
2019-07-18 12:15:42 +02:00
Peter Kokot f33d12096d Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicate socklen_t check
2019-07-18 12:11:45 +02:00
Nikita Popov b022817227 Merge branch 'PHP-7.4' 2019-07-18 11:16:33 +02:00
Nikita Popov da68dc85a3 Merge branch 'PHP-7.4' 2019-07-18 11:13:38 +02:00
Sjon Hortensius 05752d3acf Ref #77388: Don't pass BAD_ESCAPE_IS_LITERAL
This option is considered dangerous and unwanted. To allow for more
graceful migration don't error on now ignored X modifier.

Closes GH-4430.
2019-07-18 10:52:27 +02:00
Nikita Popov bbcfa5083e Remove Z_PARAM_ZVAL_DEREF
Since PHP 7.4 using this is very likely wrong, and we don't have
any core uses of it for that reason. Extensions shouldn't be using
it either. Accept as Z_PARAM_ZVAL and then assign using
ZEND_TRY_ASSIGN macros.
2019-07-18 10:44:27 +02:00
Christoph M. Becker 33656f0289 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS and UPGRADING wrt. opcache.cache_id [ci skip]
2019-07-18 09:17:14 +02:00
Christoph M. Becker 0ff5931310 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use regedit to register event source
2019-07-18 09:11:18 +02:00
Peter Kokot ba72a135f0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelogs
2019-07-18 02:27:33 +02:00
Peter Kokot 22583b20bc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
  Remove unused defines
2019-07-18 02:23:46 +02:00
Peter Kokot 89a6ebd0e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelog
  Remove unused MISSING_MSGHDR_MSGFLAGS
2019-07-18 02:18:18 +02:00
Peter Kokot e504716320 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicate AC_PROG_CPP call
2019-07-18 02:15:32 +02:00
Peter Kokot 139ecf84ff Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelog
  Remove unused HAVE_SHM_MMAP_ZERO and HAVE_SHM_MMAP_FILE
2019-07-18 02:13:32 +02:00
Christoph M. Becker 54401001a8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow multiple cache instances per user/host on Windows
2019-07-17 19:52:49 +02:00
Christoph M. Becker 6d00cff36f Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Remove Windows syslog script and syslog.reg"
2019-07-17 19:37:46 +02:00
Nikita Popov 96aae524bf Merge branch 'PHP-7.4' 2019-07-17 15:59:31 +02:00
Nikita Popov b7a0e111cc Merge branch 'PHP-7.4' 2019-07-17 14:48:59 +02:00
Nikita Popov 1221293a98 Avoid duplicate fstat() for includes
By adding a flag to avoid forced fstat for includes. The two fstats
will happen back to back and we don't care about a possible
invalidation.

I was hoping to move this higher up in the stack and make the
ISREG check somewhere in fsizer of fixup, but this doesn't really
seem to be possible. E.g. an FP stdin handle will not be a regular
file but of course needs to be allowed. Additionally custom stream
wrappers may not implement this functionality.
2019-07-17 14:48:10 +02:00
Dmitry Stogov b1f17a2579 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid extra specialization for cold opcodes
2019-07-17 14:04:26 +03:00
Nikita Popov 3c2f433b2b Merge branch 'PHP-7.4' 2019-07-17 12:02:30 +02:00
Nikita Popov 995b391621 Merge branch 'PHP-7.4' 2019-07-17 11:22:41 +02:00
Dmitry Stogov aced6c1538 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove old hack
2019-07-17 12:05:40 +03:00
Nikita Popov b32e9a9227 Merge branch 'PHP-7.4' 2019-07-17 10:41:34 +02:00
Dmitry Stogov a997a23f61 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added specialization for comparison instructions and QM_ASSIGN
2019-07-17 09:12:27 +03:00
Peter Kokot cf197962e1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
  Simplify functions checks in m4
2019-07-17 03:55:04 +02:00
Dmitry Stogov 51442a428c Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate "cold" and common unspecialized code
2019-07-17 00:56:06 +03:00
Peter Kokot b40be8751a Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelog
  Remove unused build checks
2019-07-16 22:47:02 +02:00
Dmitry Stogov ca68570609 Merge branch 'PHP-7.4'
* PHP-7.4:
  Provide type info
2019-07-16 22:56:47 +03:00
Nikita Popov c4a6998c62 Merge branch 'PHP-7.4' 2019-07-16 17:45:03 +02:00
Nikita Popov 3faa903d47 Merge branch 'PHP-7.4' 2019-07-16 16:44:46 +02:00
Dmitry Stogov 72c6ea9cb8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Slit INC/DEC opcodes into hot/cold parts and remove specialized versioins for LONG_OR_DOUBLE.
2019-07-16 17:40:31 +03:00
Nikita Popov 70e2d2d0ee Merge branch 'PHP-7.4' 2019-07-16 15:54:05 +02:00
Nikita Popov 06cf349dc3 Merge branch 'PHP-7.4' 2019-07-16 15:48:24 +02:00
Christoph M. Becker 6697204222 Merge branch 'PHP-7.4'
* PHP-7.4:
  Convert short tag to standard tag in Zend test file
2019-07-16 15:29:33 +02:00
Christoph M. Becker 54574dcf02 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS [ci skip]
2019-07-16 13:46:17 +02:00
Remi Collet 56dc1981b9 Merge branch 'PHP-7.4'
* PHP-7.4:
  move NEWS entry [ci skip]
2019-07-16 13:00:57 +02:00
Dmitry Stogov 2ac93e2965 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace deprecated conditions by ZEND_ASSERT.
2019-07-16 13:50:55 +03:00
Nikita Popov e36118a5c5 Merge branch 'PHP-7.4' 2019-07-16 12:20:21 +02:00
Nikita Popov ce972ba349 Merge branch 'PHP-7.4' 2019-07-16 11:54:40 +02:00
Nikita Popov c562d71d12 Merge branch 'PHP-7.4' 2019-07-16 11:11:08 +02:00
Remi Collet 1d29b5b89b Merge branch 'PHP-7.4'
* PHP-7.4:
  next is 7.2.22
2019-07-16 10:39:37 +02:00
Nikita Popov 760308cbff Fix build without jit 2019-07-16 10:26:25 +02:00
Nikita Popov bd38129fa4 Merge branch 'PHP-7.4' 2019-07-16 10:25:14 +02:00
Dmitry Stogov ab2888511b Merge branch 'PHP-7.4'
* PHP-7.4:
  Delay IS_UNDEF checks
2019-07-16 11:17:04 +03:00
Dmitry Stogov c0b683e751 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed incorrect specialization (missed IS_INDIRECT handling)
2019-07-16 01:54:34 +03:00
Peter Kokot ccac19ed6c Merge branch 'PHP-7.4'
* PHP-7.4:
  Small typo and proto name fix
2019-07-15 18:15:58 +02:00
Peter Kokot 62d21d8e20 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove win32/php_stdbool.h
2019-07-15 18:00:31 +02:00
Peter Kokot f213132c72 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused files
2019-07-15 17:59:17 +02:00
Peter Kokot 160ba0f7bd Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove Windows syslog script and syslog.reg
2019-07-15 17:57:51 +02:00
Peter Kokot f6c684a45f Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove some *.dsp/*.dsw leftovers
2019-07-15 17:56:07 +02:00
Nikita Popov 90d5276e1b Merge branch 'PHP-7.4' 2019-07-15 17:29:45 +02:00
Nikita Popov 9207aef60c Merge branch 'PHP-7.4' 2019-07-15 16:26:25 +02:00
Nikita Popov e33d7dc9e6 Merge branch 'PHP-7.4' 2019-07-15 15:20:45 +02:00
Christoph M. Becker 35c5e0a052 Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync mysqlnd version with PHP version
2019-07-15 14:21:25 +02:00
Remi Collet f6e32613c7 Merge branch 'PHP-7.4'
* PHP-7.4:
  typo [ci skip]
2019-07-15 14:17:32 +02:00
Remi Collet 40bed7b3a7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78269 password_hash uses weak options for argon2
  Fix #78269 password_hash uses weak options for argon2
2019-07-15 14:12:13 +02:00
Christoph M. Becker 7556600dfc Fix #65547: Default value for sunrise/sunset zenith still wrong
The value of the zenith angle to calculate sunrise and sunset times is
commonly defined as 90°50', and is "obtained by adding the average
apparent radius of the Sun (16') to the average amount of atmospheric
refraction at the horizon (34')", according to
http://aa.usno.navy.mil/faq/docs/RST_defs.php.

This value is also used for the Sunrise/Sunset Algorithm published in
the Almanac for Computers, 1990, see
https://web.archive.org/web/20161202180207/http://williams.best.vwh.net/sunrise_sunset_algorithm.htm.
2019-07-15 13:52:09 +02:00
Nikita Popov 25985fedcf Merge branch 'PHP-7.4' 2019-07-15 13:49:36 +02:00
Nikita Popov 193bcf9650 Merge branch 'PHP-7.4' 2019-07-15 12:52:18 +02:00
Nikita Popov f821256d00 Remove unused is_constructor arguments 2019-07-15 12:36:31 +02:00
Dmitry Stogov 01d0bd126c Merge branch 'PHP-7.4'
* PHP-7.4:
  vectorize string-escape with NEON
2019-07-15 11:36:11 +03:00
Nikita Popov 8a10258a53 Merge branch 'PHP-7.4' 2019-07-15 10:33:31 +02:00
Peter Kokot 5284645fc3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove usage of PHP_AIX_LDFLAGS
2019-07-14 23:45:13 +02:00
Peter Kokot 9310ac2ab5 Symbol HAVE_PCRE has been removed 2019-07-14 23:02:52 +02:00
Peter Kokot f91ffe5915 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove conditional calls of always available macros
2019-07-14 22:24:59 +02:00
Peter Kokot 08c8051977 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unsed zts check for sqlite3
2019-07-14 21:08:19 +02:00
Peter Kokot 5ca149d192 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicate PTHREADS template define
2019-07-14 14:46:55 +02:00
Peter Kokot 2ba4fb1263 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove timelib outdated defines
2019-07-14 13:50:43 +02:00
Peter Kokot 567b602bcf Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove PHP_MYSQL variable
2019-07-14 13:49:18 +02:00
Peter Kokot 856569ce2e Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelogs
2019-07-13 15:38:58 +02:00
Peter Kokot 16e64cb5e3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove php_multiple_shlib_versions_ok
2019-07-13 15:06:53 +02:00
Peter Kokot 7b727607d4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused recode extension artefacts
2019-07-13 14:53:07 +02:00
Peter Kokot 68c0c812c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove checks for always enabled spl and pcre
2019-07-13 14:49:00 +02:00
Peter Kokot 71bd212d0e Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove WARNING_LEVEL fix for QNX
2019-07-13 14:40:17 +02:00
Christoph M. Becker 156cc1d6c5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78283: no output for explicit environment
2019-07-13 12:03:59 +02:00
Christoph M. Becker 6e630fe79b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78282: atime and mtime mismatch
2019-07-13 09:45:14 +02:00
Peter Kokot e0ea444dd3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Convert all php_error_docref0 to php_error_docref
2019-07-13 02:10:17 +02:00
Peter Kokot 930e38ec5c Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove tsrm_config_common.h
2019-07-13 01:58:38 +02:00
Christoph M. Becker 5929f6fccb Merge branch 'PHP-7.4'
* PHP-7.4:
  No more need to cater to pre-PHP-5.3 or PHP-6 versions
2019-07-12 18:56:09 +02:00
Nikita Popov a89b959320 Merge branch 'PHP-7.4' 2019-07-12 17:22:58 +02:00
Nikita Popov 2fe2e80b5f Merge branch 'PHP-7.4' 2019-07-12 16:52:00 +02:00
Nikita Popov b60c76f1de Merge branch 'PHP-7.4' 2019-07-12 16:30:54 +02:00
Christoph M. Becker d68abef804 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS and UPGRADING wrt. ext/recode unbundling
2019-07-12 14:36:10 +02:00
Christoph M. Becker fbb0bc597f Merge branch 'PHP-7.4'
* PHP-7.4:
  Removed ext/recode
2019-07-12 13:58:42 +02:00
Christoph M. Becker 3a0dd2d746 Merge branch 'PHP-7.4'
* PHP-7.4:
  Swap implode() argument order in the test helper
2019-07-12 13:28:39 +02:00
Nikita Popov 96daf181a6 Merge branch 'PHP-7.4' 2019-07-12 13:18:53 +02:00
Nikita Popov 98495f7f30 Merge branch 'PHP-7.4' 2019-07-12 13:14:38 +02:00
Nikita Popov 0146bab449 Merge branch 'PHP-7.4' 2019-07-12 12:55:21 +02:00
Dmitry Stogov 319e2bc42e Merge branch 'PHP-7.4'
* PHP-7.4:
  Use common code for double math
2019-07-12 11:42:11 +03:00
Christoph M. Becker a5b095650a Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Temporarily skip test"
2019-07-11 23:34:09 +02:00
Dmitry Stogov ac5bff987b Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow GOTO style helpers in HYBRID VM
2019-07-12 00:01:31 +03:00
Dmitry Stogov 3c89a3d716 Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate "cold" parts of comparison instructions
2019-07-11 20:45:12 +03:00
Dmitry Stogov b4ee279bf4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate "cold" parts of binary op instructions
2019-07-11 18:23:48 +03:00
Nikita Popov 6efb354831 Merge branch 'PHP-7.4' 2019-07-11 17:09:23 +02:00
Nikita Popov 61601dfcfd Merge branch 'PHP-7.4' 2019-07-11 16:20:22 +02:00
Nikita Popov 74bf7bfb88 Merge branch 'PHP-7.4' 2019-07-11 15:49:02 +02:00
Nikita Popov f464f8edfe Merge branch 'PHP-7.4' 2019-07-11 14:15:02 +02:00
Christoph M. Becker 1a69de7de0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78212: Segfault in built-in webserver
2019-07-11 13:11:40 +02:00
Nikita Popov eabe0145d4 Merge branch 'PHP-7.4' 2019-07-11 13:00:06 +02:00
Dmitry Stogov 11a4e2787f Merge branch 'PHP-7.4'
* PHP-7.4:
  neon vectorization for base64
2019-07-11 12:04:51 +03:00
Nikita Popov e56854a0f7 Merge branch 'PHP-7.4' 2019-07-11 10:30:14 +02:00
Nikita Popov b290790cc2 Merge branch 'PHP-7.4' 2019-07-11 10:26:59 +02:00
Peter Kokot 1a935e2662 Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor undefining PACKAGE_* symbols
2019-07-11 02:02:01 +02:00
Peter Kokot f99adb4bb5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove TSRM/tsrm_config.w32.h
2019-07-10 21:20:10 +02:00
Nikita Popov cf7dd00280 Drop support for JIT without SSE
Closes GH-4388.
2019-07-10 17:31:51 +02:00
Dmitry Stogov cf0e15333e Merge branch 'PHP-7.4'
* PHP-7.4:
  Set expectation to reduce hot code fragmentation
2019-07-10 18:29:56 +03:00
Nikita Popov df84d680bf Merge branch 'PHP-7.4' 2019-07-10 17:28:52 +02:00
Nikita Popov d63b91db60 Merge branch 'PHP-7.4' 2019-07-10 15:19:43 +02:00
Nikita Popov 36235cf5d7 Read from original address
References are derefed into FCARG1, which is later clobbered by the
undef handling code. Make sure we load from the original address
instead.
2019-07-10 14:13:29 +02:00
Nikita Popov 9b143b074a Merge branch 'PHP-7.4' 2019-07-10 13:10:12 +02:00
Nikita Popov 1cdc0d9056 Merge branch 'PHP-7.4' 2019-07-10 12:55:52 +02:00
Nikita Popov 26431d1995 Implement array access notice in JIT 2019-07-10 12:20:16 +02:00
Nikita Popov 106f71cc94 Merge branch 'PHP-7.4' 2019-07-10 12:05:24 +02:00
Dmitry Stogov db02d7ae75 Reduce cost for GC references to strings and resources in JIT 2019-07-10 12:41:19 +03:00
Dmitry Stogov 8dbeb0c6bc Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce cost for references to strings and resources
2019-07-10 12:29:26 +03:00
Nikita Popov bbd12b3d30 Merge branch 'PHP-7.4' 2019-07-10 11:11:30 +02:00
Remi Collet b3438b2670 Merge branch 'PHP-7.4'
* PHP-7.4:
  improve libargon2/libsodium compatibility
2019-07-10 09:00:54 +02:00
Peter Kokot cbefc538fa Merge branch 'PHP-7.4'
* PHP-7.4:
  Use e.g. instead of less common f.e. [ci skip]
2019-07-09 17:53:57 +02:00
Sara Golemon 23a90b2847 Merge branch 'PHP-7.4'
* PHP-7.4:
  Relax argon2 mem_cost down to 64k, bump time_cost to 4
2019-07-09 11:37:08 -04:00
Nikita Popov 5f0c8f5e30 Merge branch 'PHP-7.4' 2019-07-09 16:20:12 +02:00
Dmitry Stogov 10f53f9c80 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid unintended inlining
2019-07-09 14:02:12 +03:00
Nikita Popov 8ba7e33dba Merge branch 'PHP-7.4' 2019-07-09 11:06:57 +02:00
Christoph M. Becker 0fc7dce743 Merge branch 'PHP-7.4'
* PHP-7.4:
  Upgrade to SQLite 3.28.0
2019-07-09 10:08:42 +02:00
Dmitry Stogov ee9f03fb4c Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicated code for (PRE|POST)_DEC_(OBJ|STATIC_PROP) opcodes
2019-07-09 10:47:15 +03:00
Peter Kokot 4ea6b74813 Merge branch 'PHP-7.4'
* PHP-7.4:
  Catch up with current procedures
2019-07-08 23:28:33 +02:00
Peter Kokot 39488dcac6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add zend.exception_ignore_args [ci skip]
2019-07-08 19:34:57 +02:00
Peter Kokot dea475c3e6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS [ci skip]
  Update NEWS [ci skip]
  Update NEWS [ci skip]
2019-07-08 18:51:13 +02:00
Dmitry Stogov 349778f38c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed dispatch from inlined hybrid opcode to another opcode
2019-07-08 18:02:22 +03:00
Nikita Popov 1fe478d30c Merge branch 'PHP-7.4' 2019-07-08 16:54:22 +02:00
Peter Kokot e278517b66 Merge branch 'PHP-7.4'
* PHP-7.4:
  Catch up with recent changes [ci skip]
2019-07-08 16:24:35 +02:00
Peter Kokot e676aef56a Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove APACHE symbol
2019-07-08 15:06:54 +02:00
Peter Kokot 61809b19f7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor genif.sh
2019-07-08 14:59:40 +02:00
Nikita Popov f01c7e959f Merge branch 'PHP-7.4' 2019-07-08 13:36:26 +02:00
Dmitry Stogov 0e5ecc7a8f Merge branch 'PHP-7.4'
* PHP-7.4:
  Delay EG(exception) check on slow path
2019-07-08 14:13:02 +03:00
Nikita Popov 78068171dd Merge branch 'PHP-7.4' 2019-07-08 12:53:50 +02:00
Nikita Popov 3ee570ae0d Remove redundant variable declaration 2019-07-08 12:50:00 +02:00
Peter Kokot da54b1c20e Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove C89 checks for signal.h and strerror
2019-07-08 12:47:35 +02:00
Peter Kokot fa8a51f140 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update libmagic patch
2019-07-08 12:41:15 +02:00
David Carlier 5e13688142 JIT: Reading php binary symbols list on FreeBSD
Closes GH-4363.
2019-07-08 12:39:18 +02:00
Nikita Popov 0904dd3dc2 Remove INPUT_SESSION and INPUT_REQUEST
These were never supported and always generated a warning. Remove
them entirely for PHP 8.
2019-07-08 10:50:34 +02:00
Christoph M. Becker 8aa6d5a0ea Merge branch 'PHP-7.4'
* PHP-7.4:
  Implement FR #77230: Support custom CFLAGS and LDFLAGS from environment
2019-07-08 10:47:09 +02:00
Christoph M. Becker 8e22d7c785 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix TsHashTable related race conditions
2019-07-08 10:32:39 +02:00
Peter Kokot 4f5c6bc15e Merge branch 'PHP-7.4'
* PHP-7.4:
  Simplify PHP_CHECK_PDO_INCLUDES calls
2019-07-08 10:26:08 +02:00
Dmitry Stogov b8dae9981d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed opcode description
2019-07-08 11:21:54 +03:00
Peter Kokot c752b74665 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove some unused variables
2019-07-08 10:20:14 +02:00
Sara Golemon 17bfac6347 Merge branch 'PHP-7.4'
* PHP-7.4:
  Provide argon2i(d) password hashing from sodium when needed
2019-07-07 21:55:12 -04:00
Stanislav Malyshev 27b6d36f98 Merge branch 'PHP-7.4'
* PHP-7.4:
  Simplify expression and remove the possibility of div by 0
2019-07-07 16:21:06 -07:00
Peter Kokot 04f9a523eb Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove PHP_DEBUG_MACRO
2019-07-07 12:16:14 +02:00
Peter Kokot 35709b56e4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove some more Apache 1 left overs
2019-07-07 12:10:59 +02:00
Nikita Popov e89cbfc1c9 Merge branch 'PHP-7.4'
[ci skip]
2019-07-07 11:25:16 +02:00
Nikita Popov 8e948204f9 Disable jit on msan job
JIT code is not instrumented and as such incompatible with msan.
I'm not sure why this only started failing in the last build, it
shouldn't have worked before either...
2019-07-06 23:51:26 +02:00
Peter Kokot 0707caf163 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move footer to the end of configure output
2019-07-06 04:55:42 +02:00
Peter Kokot b36b6c5fdf Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove PTHREADS_ASSIGN_VARS
2019-07-05 23:30:51 +02:00
Nikita Popov da8b583ac1 Always generate interrupt check in jit
Even if zend_interrupt_function is NULL, we still need to perform
the interrupt check for timeouts (which do not use
zend_interrupt_function).
2019-07-05 20:52:30 +02:00
Christoph M. Becker 705f8abcb7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove superfluous assignment
2019-07-05 15:57:01 +02:00
Dmitry Stogov bfca9592d0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Eliminate useless checks
2019-07-05 14:25:26 +03:00
Christoph M. Becker 2d926d994f Merge branch 'PHP-7.4'
* PHP-7.4:
  Temporarily skip test
2019-07-05 12:49:14 +02:00
Nikita Popov 526f2d681b Merge branch 'PHP-7.4' 2019-07-05 12:07:51 +02:00
Nikita Popov a92e6d7136 Merge branch 'PHP-7.4' 2019-07-05 12:05:10 +02:00
Nikita Popov 8ae9e1b9a2 Merge branch 'PHP-7.4' 2019-07-05 11:43:26 +02:00
Nikita Popov 57a385db09 Merge branch 'PHP-7.4' 2019-07-05 11:21:43 +02:00
Dmitry Stogov 1f800e2f82 Removed die('skip wurstuoppe'); 2019-07-05 12:20:12 +03:00
Dmitry Stogov 1b5b8175af Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
2019-07-05 12:16:30 +03:00
Nikita Popov 215e9d069c Merge branch 'PHP-7.4' 2019-07-05 11:00:54 +02:00
Nikita Popov f8d8b96e92 Merge branch 'PHP-7.4' 2019-07-05 10:47:01 +02:00
George Wang dfce767a62 Merge branch 'PHP-7.4' 2019-07-04 12:15:25 -04:00
Nikita Popov 9fbf9e3e13 Merge branch 'PHP-7.4' 2019-07-04 17:13:04 +02:00
Dmitry Stogov 806e38a3a4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve zend_binary_assign_op helpers. Reorder opcode numbers to make ADD-POW and ASSIGN_ADD-ASSIGN_POW opcodes sequencional.
2019-07-04 17:37:52 +03:00
Dmitry Stogov 9161247140 Merge branch 'PHP-7.4'
* PHP-7.4:
  Introduce and use ZEND_VM_INLINE_HANDLER() to avoid ZEND_RETURN exception
2019-07-04 15:55:33 +03:00
Christoph M. Becker 4ed87f379b Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Remove NEWS entry
2019-07-04 14:51:15 +02:00
Christoph M. Becker 143f32cf25 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in NEWS [skip ci]
2019-07-04 14:45:13 +02:00
Nikita Popov 8c647946ff Merge branch 'PHP-7.4' 2019-07-04 12:20:40 +02:00
Dmitry Stogov f5869118a9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Split destructor
2019-07-04 13:08:08 +03:00
Nikita Popov 6473ec30a1 Merge branch 'PHP-7.4' 2019-07-04 11:07:14 +02:00
Nikita Popov 21b0f44429 Merge branch 'PHP-7.4' 2019-07-04 10:32:48 +02:00
Nikita Popov c581b2f5b0 Fix ZTS flag on master 2019-07-04 09:53:51 +02:00
Dmitry Stogov c98b6d5bb5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Better optimization in RELEASE build. ZEND_ASSERT(s) prevented optimization
2019-07-03 20:24:26 +03:00
Joe Watkins f1f63c0cec Merge branch 'PHP-7.4'
* PHP-7.4:
  improvements to cli server
2019-07-03 16:31:55 +02:00
Nikita Popov f124bf22e0 Merge branch 'PHP-7.4' 2019-07-03 14:05:31 +02:00
Nikita Popov 057012f241 Merge branch 'PHP-7.4' 2019-07-03 12:48:00 +02:00
Nikita Popov 97b84a3694 Merge branch 'PHP-7.4' 2019-07-03 12:37:17 +02:00
Nikita Popov f6f0d383b3 Merge branch 'PHP-7.4' 2019-07-03 11:42:04 +02:00
Nikita Popov 8673606631 Merge branch 'PHP-7.4' 2019-07-03 11:27:13 +02:00
Nikita Popov 93f41d2aec Merge branch 'PHP-7.4' 2019-07-03 11:03:41 +02:00
Nikita Popov 105300afe4 Merge branch 'PHP-7.4' 2019-07-03 11:00:23 +02:00
Nikita Popov fa1a03f7a2 Merge branch 'PHP-7.4' 2019-07-03 10:22:41 +02:00
Christoph M. Becker f71268ac67 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78241: touch() does not handle dates after 2038 in PHP 64-bit
2019-07-03 10:03:59 +02:00
Dmitry Stogov 6188a69b8a Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimization of INC/DEC helpers
2019-07-03 10:50:14 +03:00
Joe Watkins 1a50d84e26 Merge branch 'PHP-7.4'
* PHP-7.4:
  Removed mysqlnd stats from phpinfo page
2019-07-03 08:23:48 +02:00
Joe Watkins 4fb595d8b7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable option checking on CI
2019-07-03 08:16:47 +02:00
Joe Watkins 0baf81514a Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove libtool and automake from azure installs
2019-07-03 08:14:19 +02:00
Peter Kokot d9630aee79 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove PHP_CHECK_CONFIGURE_OPTIONS
2019-07-02 22:22:07 +02:00
Peter Kokot e7c028f00c Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove some old BeOS artefacts
2019-07-02 22:10:24 +02:00
Peter Kokot 0ae28558bc Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove check for ApplicationServices/ApplicationServices.h
2019-07-02 22:05:41 +02:00
Nikita Popov 2a9e9cc5b6 Merge branch 'PHP-7.4' 2019-07-02 16:22:42 +02:00
Nikita Popov 5c89b60411 Merge branch 'PHP-7.4' 2019-07-02 16:12:43 +02:00
Christoph M. Becker 3952d3378a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix NEWS
2019-07-02 15:09:59 +02:00
Joe Watkins d41ab64456 Merge branch 'PHP-7.4'
* PHP-7.4:
  simple ignore arguments in exceptions implementation
2019-07-02 13:19:25 +02:00
Nikita Popov 80fc31c887 Merge branch 'PHP-7.4' 2019-07-02 13:03:45 +02:00
Nikita Popov 9dfa414f60 Merge branch 'PHP-7.4'
[ci skip]
2019-07-02 12:32:55 +02:00
Nikita Popov ad81aae8bf Merge branch 'PHP-7.4' 2019-07-02 12:28:51 +02:00
Nikita Popov cef59ad77b Merge branch 'PHP-7.4' 2019-07-02 12:10:32 +02:00
Nikita Popov 2f7c3971cc Merge branch 'PHP-7.4' 2019-07-02 11:59:21 +02:00
Nikita Popov 05ac4acc24 Merge branch 'PHP-7.4' 2019-07-02 10:17:25 +02:00
Dmitry Stogov afe6e00b6e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed build without global register variables
2019-07-02 11:03:46 +03:00
Dmitry Stogov 97b685f0c1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate slow code
2019-07-02 01:17:05 +03:00
Dmitry Stogov ccbdd41e5c Merge branch 'PHP-7.4'
* PHP-7.4:
  Use string destructor instead of general zval_ptr_dtor_nogc()
2019-07-02 01:15:39 +03:00
Dmitry Stogov 686f6b383a Merge branch 'PHP-7.4'
* PHP-7.4:
  Eliminate exception checks
2019-07-02 01:13:23 +03:00
Christoph M. Becker fc94e0fc6e Fix SKIPIF conditions
The SKIPIF sections are executed in the directory where run-tests.php
is located; therefore a relative path like `../skipif.inc` won't work
as desired.
2019-07-01 19:47:23 +02:00
Christoph M. Becker 8a0717255c Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIFs
2019-07-01 18:14:55 +02:00
Nikita Popov 9ab5c28c8b Merge branch 'PHP-7.4' 2019-07-01 17:28:01 +02:00
Christoph M. Becker 017e293992 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIFs
2019-07-01 17:25:31 +02:00
Nikita Popov 4e1a225e3e Merge branch 'PHP-7.4' 2019-07-01 16:55:39 +02:00
Christoph M. Becker b8d6d4a2bd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix brittle test
2019-07-01 16:45:49 +02:00
Nikita Popov fe2aca83ce Merge branch 'PHP-7.4' 2019-07-01 16:14:58 +02:00
Dmitry Stogov f393502e7f Merge branch 'PHP-7.4'
* PHP-7.4:
  Micro-optimization
2019-07-01 16:57:55 +03:00
Dmitry Stogov 0b6c294e03 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed GOTO VM
2019-07-01 15:51:36 +03:00
Peter Kokot b757d49cb5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove TSRM_BASIC_CHECKS
2019-07-01 13:26:17 +02:00
Peter Kokot fa21fda6ab Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove not needed checks for functions
2019-07-01 13:21:44 +02:00
Peter Kokot 0d9318a424 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused check for struct cmsghdr
2019-07-01 13:18:08 +02:00
Nikita Popov 22ce77f500 Merge branch 'PHP-7.4' 2019-07-01 12:47:49 +02:00
Nikita Popov 8fc58a1a1d Merge branch 'PHP-7.4' 2019-07-01 11:14:54 +02:00
Nikita Popov 4a8fe02c7c Undef opline result on mod/shift error in jit 2019-07-01 10:15:06 +02:00
Nikita Popov b7ed20662e Fix out of bounds read in jit_fetch_obj_read 2019-07-01 09:54:21 +02:00
Nikita Popov e73cc44021 Merge branch 'PHP-7.4' 2019-07-01 09:44:53 +02:00
Peter Kokot a0cbc9a7b9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS [ci skip]
2019-07-01 03:10:15 +02:00
Peter Kokot 964558fc5a Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS [ci skip]
2019-07-01 02:55:12 +02:00
Peter Kokot b5ab6b39fa Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78197: PCRE2 version check
2019-07-01 02:53:30 +02:00
Peter Kokot 267dbe2d6c Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelogs [ci skip]
2019-07-01 01:36:08 +02:00
Peter Kokot 98d0892dd8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync functions checks
2019-06-30 23:59:47 +02:00
Peter Kokot b576e3f871 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused build specific symbols
2019-06-30 23:55:27 +02:00
Peter Kokot 8569a6740e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix phar tests with hash extension
  Fix missing file and remove SKIP section
2019-06-30 23:52:30 +02:00
Peter Kokot 7ad82d47d3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_LIMITS_H check
2019-06-30 23:46:02 +02:00
Peter Kokot c48c6a021f Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_DEV_ARANDOM
2019-06-30 23:40:32 +02:00
Derick Rethans 73734eee6c Merge branch 'PHP-7.4' 2019-06-30 15:51:04 +01:00
Anatol Belski 0ecfd09c09 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS [ci skip]
  Update NEWS [ci skip]
2019-06-29 17:41:52 +02:00
Anatol Belski e0112eb4e3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update libmagic.patch [ci skip]
2019-06-29 17:36:39 +02:00
Anatol Belski 5ea43c38b3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Set buffer to NULL to prevent double free (Kamil Dudka at redhat)
2019-06-29 17:19:20 +02:00
Anatol Belski 9f9657ff92 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix magic data
2019-06-29 16:53:10 +02:00
Christoph M. Becker 2c49354ac2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix memory leak in COM ctor
2019-06-29 14:51:40 +02:00
Anatol Belski b74d4d2c19 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
  Add tests from fix #78183 from PHP-7.2
  Fix #78183: finfo_file shows wrong mime-type for .tga file
2019-06-29 13:31:56 +02:00
Joe Watkins 22fb96ab85 Merge branch 'PHP-7.4'
* PHP-7.4:
  implement support for workers in cli-server on platforms supporting fork
2019-06-29 05:28:12 +02:00
Joe Watkins 5f25cd6ed7 Merge branch 'PHP-7.4'
* PHP-7.4:
  add ini config details to php-config
2019-06-29 05:26:38 +02:00
Peter Kokot 5a4f7cead4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Clean up files after the tests are run
2019-06-28 20:19:20 +02:00
Peter Kokot 1f9906ab5b Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelogs [ci skip]
  Remove HAVE_ERRNO_H from libgd
2019-06-28 20:14:29 +02:00
Nikita Popov 796dc564e2 Increase timeout of asan job on master
This will additionally be testing the JIT and 120 is cutting it
close for that.
2019-06-28 17:47:55 +02:00
Nikita Popov 8f0729cb65 Merge branch 'PHP-7.4' 2019-06-28 17:47:45 +02:00
Nikita Popov aa2320b274 Merge branch 'PHP-7.4' 2019-06-28 16:39:57 +02:00
Nikita Popov 0588c38a2c Merge branch 'PHP-7.4' 2019-06-28 16:11:37 +02:00
Nikita Popov b98c148f78 Merge branch 'PHP-7.4' 2019-06-28 15:05:00 +02:00
Nikita Popov 0a0ca984f0 Merge branch 'PHP-7.4' 2019-06-28 14:48:08 +02:00
Nikita Popov b4121f4930 Merge branch 'PHP-7.4' 2019-06-28 12:45:26 +02:00
Christoph M. Becker 44b97fd1ee Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78192 PDO SQLite SegFault when reuse statement after schema has changed
2019-06-28 12:38:17 +02:00
Nikita Popov e82214b9c1 Merge branch 'PHP-7.4' 2019-06-28 11:10:25 +02:00
Dmitry Stogov f7f7fec7ef Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce overhead
2019-06-28 12:03:27 +03:00
Joe Watkins b98cd0719a Merge branch 'PHP-7.4'
* PHP-7.4:
  implement tsrm_is_shutdown API
2019-06-28 10:27:39 +02:00
Christoph M. Becker 0504f04591 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use the portable zend_strndup() instead of strndup()
2019-06-28 10:24:15 +02:00
Dmitry Stogov 696b9e25c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed use-after-free
2019-06-28 10:44:13 +03:00
Nikita Popov aa8d70f309 Merge branch 'PHP-7.4' 2019-06-28 09:19:49 +02:00
Sara Golemon 488709aadb Merge branch 'PHP-7.4'
* PHP-7.4:
  Bugfix #78208 Needs rehash with an unknown algo should always return true.
2019-06-27 19:28:04 -04:00
Peter Kokot 0b81ebdf2a Merge branch 'PHP-7.4'
* PHP-7.4:
  Catch up with some recent changes [ci skip]
2019-06-28 00:32:08 +02:00
Peter Kokot 05bc5169da Fix typo 2019-06-28 00:26:24 +02:00
Peter Kokot 7f994990ea Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_STRCOLL check
2019-06-28 00:13:25 +02:00
Peter Kokot 221494f4de Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync HAVE_HASH, HAVE_HASH_EXT, PHAR_HASH_OK symbols
2019-06-27 23:29:11 +02:00
Nikita Popov e31936205b Merge branch 'PHP-7.4' 2019-06-27 16:16:57 +02:00
Nikita Popov 5918171f95 Merge branch 'PHP-7.4' 2019-06-27 14:21:49 +02:00
Christoph M. Becker bfaea35253 Merge branch 'PHP-7.4'
* PHP-7.4:
  Show actual enchant version if possible
2019-06-27 13:05:43 +02:00
Dmitry Stogov c45931f69b Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate common code abd eliminate useless checks
2019-06-27 13:11:37 +03:00
Dmitry Stogov 31670211e2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Inline hot path
2019-06-27 11:28:14 +03:00
Nikita Popov f4ad175bb0 Merge branch 'PHP-7.4' 2019-06-27 09:48:47 +02:00
Andrey Gromov 84c4a4f17d Make zend_hash_rehash() a void function
It always succeeds.

Closes GH-4304.
2019-06-27 09:48:19 +02:00
Peter Kokot 6bfa6bff0b Merge branch 'PHP-7.4'
* PHP-7.4:
  Clean headers checks
2019-06-27 02:45:31 +02:00
Dmitry Stogov e2effc96b4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid double checks on early binding
2019-06-27 02:25:57 +03:00
Peter Kokot 8f1f4c7df6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove warnings for bison and re2c checks
2019-06-27 01:00:33 +02:00
Peter Kokot ce12ecd40f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix concurrent testing of bug 61964
2019-06-27 00:27:43 +02:00
Peter Kokot ff0cab8042 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix posix_errno test without PCNTL dep
2019-06-27 00:25:14 +02:00
Peter Kokot ea0e9b4d86 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused HAVE_DATE and HAVE_SPL symbols
2019-06-26 23:51:46 +02:00
Peter Kokot 8d8333b498 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_STRTOD and strtod check
2019-06-26 23:13:01 +02:00
Peter Kokot 7239925213 Merge branch 'PHP-7.4'
* PHP-7.4:
  Set Computer English language for credits sorting
2019-06-26 22:38:35 +02:00
Christoph M. Becker febe719b5d Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove stream_socket_sendto.phpt
2019-06-26 17:04:33 +02:00
Dmitry Stogov 8dac19278e Merge branch 'PHP-7.4'
* PHP-7.4:
  Private methods don't have to be duplicated
2019-06-26 13:27:41 +03:00
Nikita Popov ac749b126f Merge branch 'PHP-7.4' 2019-06-26 11:43:30 +02:00
Peter Kokot bbd19a127b [ci skip] Mention HAVE_HASH_EXT 2019-06-26 03:15:28 +02:00
Dmitry Stogov db97bbc0c5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reorder conditions to minimize number of checks on fast path
2019-06-26 01:08:43 +03:00
Dmitry Stogov 0c932e0aff Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove always true/false conditions, remove dead conde and simplify code.
2019-06-26 00:44:10 +03:00
Dmitry Stogov 5ce26b4895 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace previosly checked conditions by ZEND_ASSERT()
2019-06-25 18:27:30 +03:00
Dmitry Stogov 7dc4dd4d7c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed variance check for abstract constructor during erlay binding
2019-06-25 17:44:49 +03:00
Dmitry Stogov c6ce159384 Merge branch 'PHP-7.4'
* PHP-7.4:
  Cleanup
2019-06-25 16:53:46 +03:00
Nikita Popov a1479fbbd9 Merge branch 'PHP-7.4' 2019-06-25 14:30:24 +02:00
Dmitry Stogov 0655598280 Merge branch 'PHP-7.4'
* PHP-7.4:
  Set ZEND_ACC_LINKED flag after early binding (for consistency)
2019-06-25 15:06:19 +03:00
Dmitry Stogov e4f4be1a05 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce overhead of delayed early binding
2019-06-25 14:21:23 +03:00
Christoph M. Becker d1141ff24b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
2019-06-25 13:07:00 +02:00
Dmitry Stogov 83c2e6787d Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent useless hash lookups
  Update NEWS for 7.4.0alpha3
  Update NEWS for PHP 7.4.0alpha2
2019-06-25 12:42:36 +03:00
Dmitry Stogov ca22c456ca Merge branch 'PHP-7.4'
* PHP-7.4:
  Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time
2019-06-25 11:32:03 +03:00
Nikita Popov d2a1fe8462 Merge branch 'PHP-7.4' 2019-06-25 10:26:20 +02:00
Dmitry Stogov e18c60cd8d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug 78175 (Preloading must store default values of static variables and properties)
2019-06-24 20:34:05 +03:00
Christoph M. Becker 5120e4a133 Merge branch 'PHP-7.4'
* PHP-7.4:
  Split test case
2019-06-24 14:08:30 +02:00
Nikita Popov 98d05389a7 Merge branch 'PHP-7.4' 2019-06-22 10:20:12 +02:00
Derick Rethans 5bc7e4e6f4 Merge branch 'PHP-7.4' 2019-06-21 16:52:29 +01:00
Nikita Popov d82b270fa4 Remove unused zend_verify_arg_type() function 2019-06-21 17:15:02 +02:00
Nikita Popov e4371ef158 Merge branch 'PHP-7.4' 2019-06-21 17:01:47 +02:00
Christoph M. Becker 611c57eaf7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Properly shut down font cache mutex
2019-06-21 16:01:28 +02:00
Andrey Hristov 7b552f816b Merge branch 'PHP-7.3' 2019-06-21 16:34:52 +03:00
Nikita Popov d8b2b070ec Merge branch 'PHP-7.4' 2019-06-21 15:08:20 +02:00
Nikita Popov 1834994d0d Merge branch 'PHP-7.4' 2019-06-21 12:56:48 +02:00
Dmitry Stogov 53bcc2339c Merge branch 'PHP-7.4'
* PHP-7.4:
  Cleanup
2019-06-21 11:46:33 +03:00
Nikita Popov 38909b7526 Merge branch 'PHP-7.4' 2019-06-21 10:25:17 +02:00
Nikita Popov 7a1ca07a60 Don't try to exclude zreg_none
zreg_none has no representation in the regset, so this operation
doesn't make sense.
2019-06-21 10:24:58 +02:00
Nikita Popov 291eb19419 Dasm: Perform unaligned stores through unaligned pointers 2019-06-21 09:47:25 +02:00
Dmitry Stogov 1707f6645a Additional fix for bug #78185 (File cache no longer works) 2019-06-21 10:06:35 +03:00
Christoph M. Becker 7469d572f2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Support TGA reading
2019-06-20 23:41:23 +02:00
Christoph M. Becker 360b58e43b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78189: file cache strips last character of uname hash
2019-06-20 18:02:01 +02:00
Nikita Popov 0d31a8e4e1 Merge branch 'PHP-7.4' 2019-06-20 17:24:43 +02:00
Nikita Popov 42f3ed480d Avoid shift ub for regsets 2019-06-20 17:24:32 +02:00
Christoph M. Becker 400bf9b9b6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-06-20 17:00:49 +02:00
Christoph M. Becker 9147d06f7d Merge branch 'PHP-7.4'
* PHP-7.4:
  Rename test file to reflect the appropriate ticket number
2019-06-20 16:55:22 +02:00
Nikita Popov 6aaab9adf7 Merge branch 'PHP-7.4' 2019-06-20 16:24:31 +02:00
Remi Collet 50978128f5 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix test for Windows and for parallel run
2019-06-20 11:59:21 +02:00
Remi Collet 714cd7ff3e Merge branch 'PHP-7.4'
* PHP-7.4:
  improve test clean section
  move NEWS entry
2019-06-20 11:52:54 +02:00
Nikita Popov a2d0899e74 Merge branch 'PHP-7.4' 2019-06-20 10:35:38 +02:00
Remi Collet 477f4fec6d Merge branch 'PHP-7.4'
* PHP-7.4:
  add test for #78185
2019-06-20 10:28:46 +02:00
Nikita Popov 681136212f Merge branch 'PHP-7.4' 2019-06-20 10:16:31 +02:00
Dmitry Stogov e177791df1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78185 (File cache no longer works)
2019-06-20 09:08:09 +03:00
Nikita Popov 452076de44 Merge branch 'PHP-7.4' 2019-06-19 17:27:29 +02:00
Andrey Hristov c7e5699c42 Merge branch 'PHP-7.4' 2019-06-19 18:20:42 +03:00
Nikita Popov 6ae9c10534 Merge branch 'PHP-7.4' 2019-06-19 16:36:29 +02:00
Nikita Popov bba88eb6a1 Merge branch 'PHP-7.4' 2019-06-19 15:36:31 +02:00
Nikita Popov 3645292235 Merge branch 'PHP-7.4' 2019-06-19 15:09:39 +02:00
Joe Watkins 37cd86080f Merge branch 'PHP-7.4'
* PHP-7.4:
  fix setcookie Max-Age to use php_time
2019-06-19 12:43:26 +02:00
Joe Watkins 41a14a6c10 Merge branch 'PHP-7.4'
* PHP-7.4:
  export php_time
2019-06-19 12:41:19 +02:00
Nikita Popov bb940d9969 Avoid UB in overflow checks
Some of the overflow checks in zend_may_overflow were optimized
away by clang, causing JIT failures on release macos.
2019-06-19 12:02:42 +02:00
Joe Watkins 089e45c91a Merge branch 'PHP-7.4'
* PHP-7.4:
  refactor a little more to add some more useful error messages and raise the limits on waiting for slow machines
2019-06-19 11:42:02 +02:00
Joe Watkins 0cf3034af1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate check for process creation and ability to accept connections
2019-06-19 11:09:48 +02:00
Christoph M. Becker c34f7db5bc Merge branch 'PHP-7.4'
* PHP-7.4:
  Document removal of uint and ulong typedefs
2019-06-19 09:46:24 +02:00
Joe Watkins 8cc26690b5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Resolve discrepencies between second value yielded by gettimeofday and time, fixes #69044
2019-06-19 09:01:59 +02:00
Christoph M. Becker cb57ef5f91 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78173: XML-RPC mutates immutable objects during encoding
2019-06-18 17:10:18 +02:00
Dmitry Stogov c8d27777d6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78175 (Preloading segfaults at preload time and at runtime)
2019-06-18 17:19:19 +03:00
Côme Chilliet a88bfff59a Remove ZPP tests from ext/ldap 2019-06-18 16:11:24 +02:00
Dmitry Stogov 22b2d9d088 Fixed JIT failure, on ZTS build without global register vatriables 2019-06-18 13:52:52 +03:00
Joe Watkins 41067a22e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Turn system_id into a true global
2019-06-18 10:27:50 +02:00
Christoph M. Becker 837f384b72 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-06-18 09:35:01 +02:00
Joe Watkins 9bcbd80775 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky socket test
2019-06-18 08:31:32 +02:00
Remi Collet 34508e4a2a Merge branch 'PHP-7.4'
* PHP-7.4:
  move NEWS entry
2019-06-18 07:51:33 +02:00
Christoph M. Becker 47bb32e056 Merge branch 'PHP-7.4'
* PHP-7.4:
  Implement SQLite3 backup API
2019-06-17 23:36:43 +02:00
Nikita Popov 820cc55326 Merge branch 'PHP-7.4' 2019-06-17 17:26:07 +02:00
Christoph M. Becker 7b6aecfe5b Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve create_verify_dir() diagnostics
2019-06-17 16:51:13 +02:00
Dmitry Stogov 7a236b6761 Attempt to fix JIT on Mac OSX ZTS build 2019-06-17 17:08:58 +03:00
Nikita Popov fe02725ac9 Merge branch 'PHP-7.4' 2019-06-17 15:09:22 +02:00
Nikita Popov 227a9c75ec Add types to a couple of builtin functions 2019-06-17 14:47:20 +02:00
Dmitry Stogov 5dbcbab4cc Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove XFAIL mark
2019-06-17 14:56:42 +03:00
Dmitry Stogov cf50cab7bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid uninitilized field access
2019-06-17 14:54:28 +03:00
Dmitry Stogov 3e0b09a83c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed memory leaks in ext/ffi/tests/100.phpt on Mac OSX
2019-06-17 14:40:48 +03:00
Nikita Popov 80e4a6aaef Merge branch 'PHP-7.4' 2019-06-17 13:31:11 +02:00
Nikita Popov ca8f348646 Merge branch 'PHP-7.4' 2019-06-17 13:14:26 +02:00
Nikita Popov 248055d12c Merge branch 'PHP-7.4' 2019-06-17 13:06:54 +02:00
Nikita Popov dc18af96f9 Merge branch 'PHP-7.4' 2019-06-17 12:44:42 +02:00
Tyson Andre 38c0f6056b zend_func_info: Remove null from methods with non-null return type
Detected by parsing the strings in zend_func_info.c, looping over them
and checking for inconsistencies with Reflection.

(new ReflectionFunction('str_shuffle')->getReturnType()) would be
a non-null 'string', for example.
- e.g. that change was made in 7393777da9
  for php 8.0

Closes GH-4269.
2019-06-17 12:36:30 +02:00
Nikita Popov 6a2a449cd5 Merge branch 'PHP-7.4' 2019-06-17 11:52:49 +02:00
Nikita Popov 2d5b3b8043 Report test failures on macos
This was enabled on 7.4 but for some reason disabled on master.
2019-06-17 11:48:46 +02:00
Nikita Popov c413b1fca6 Remove bogus quieting in AppendIterator::append() 2019-06-17 11:46:23 +02:00
Nikita Popov 4c401914f8 ctor_params of mysqli_fetch_object should use "a" 2019-06-17 11:46:23 +02:00
Nikita Popov 4d90848d68 Don't verify arginfo types for internal functions
To avoid duplicate type checks. In debug builds arginfo is still
checked and will generate an assertions if the function doesn't
subsequently throw an exception.

Some test results change due to differences in zpp and arginfo
error messages.
2019-06-17 11:46:28 +02:00
Nikita Popov be6c083f28 Allow null for weak scalar arg of internal func in arginfo
For parity with zpp.
2019-06-17 11:46:23 +02:00
Joe Watkins 7f0a52e07d Merge branch 'PHP-7.4'
* PHP-7.4:
  bugs in fpm logging #4273 #4007
2019-06-17 07:49:28 +02:00
Joe Watkins 3d759e11a0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use uint64_t for time_sleep_until calculations
2019-06-16 19:20:37 +02:00
Christoph M. Becker d806d9a643 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent parallel test conflict
2019-06-16 11:56:21 +02:00
Tyson Andre 74589cf676 Make opcache zend_func_info consistent with Reflection for ctype
This follows up with php 8.0 adding a real return type
(non-null bool) in 1409a3b153
2019-06-16 11:28:18 +02:00
Tyson Andre 435384127c Fix a typo in UPGRADING 2019-06-16 11:24:44 +02:00
Joe Watkins 96cfcd407e Merge branch 'PHP-7.4'
* PHP-7.4:
  this mtime comparison makes assumptions that cannot always hold true
2019-06-16 08:29:41 +02:00
Joe Watkins d7cf5d1eee Merge branch 'PHP-7.4'
* PHP-7.4:
  gettimeofday cannot be used to reliably implement high precision process synchronization
2019-06-16 07:18:17 +02:00
Anatol Belski 0da6f73322 Set correct default version 2019-06-15 17:42:04 +02:00
Anatol Belski 15dce78fe9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Set correct default version
2019-06-15 17:39:44 +02:00
Joe Watkins e8c6910e5e PHP-8.0 should run JIT tests, always [ci skip] 2019-06-15 10:08:48 +02:00
Joe Watkins a594e48af2 Merge branch 'PHP-7.4'
* PHP-7.4:
  PHP-7.4 branch should not run JIT tests, ever [ci skip]
2019-06-15 10:07:15 +02:00
Joe Watkins 549df61248 Merge branch 'PHP-7.4'
* PHP-7.4:
  This test is flaky, and some of it doesn't make sense.
2019-06-15 10:01:22 +02:00
Joe Watkins 99dfc5e640 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead code in sockets extension [ci skip]
2019-06-15 08:39:50 +02:00
Joe Watkins 7231ee9f55 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky socket tests
2019-06-15 08:09:17 +02:00
Nikita Popov f1d5a83607 Merge branch 'PHP-7.4' 2019-06-14 17:09:21 +02:00
Nikita Popov 98f81ace40 Merge branch 'PHP-7.4' 2019-06-14 16:56:42 +02:00
Nikita Popov 6ca054551d Merge branch 'PHP-7.4' 2019-06-14 16:16:26 +02:00
Nikita Popov bd73332f50 Merge branch 'PHP-7.4' 2019-06-14 15:38:27 +02:00
Joe Watkins d7f3ef3396 Merge branch 'PHP-7.4'
* PHP-7.4:
  disable this test temporarily
2019-06-14 14:22:41 +02:00
Nikita Popov 88a71ed5f3 Merge branch 'PHP-7.4' 2019-06-14 13:12:08 +02:00
Joe Watkins cb0921b34f enable JIT only in master for macosx 2019-06-14 12:59:05 +02:00
Joe Watkins 956db0cdc2 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix mac tests on azure
2019-06-14 12:58:13 +02:00
Nikita Popov 3e8b456ada Merge branch 'PHP-7.4' 2019-06-14 12:46:56 +02:00
Dmitry Stogov 26009b4c36 Merge branch 'PHP-7.4'
* PHP-7.4:
  Backport 96a12578c1
2019-06-14 13:29:50 +03:00
Dmitry Stogov 9a20e3f500 Merge branch 'PHP-7.4'
* PHP-7.4:
  Backport 91a6cdbff5
2019-06-14 13:26:26 +03:00
Dmitry Stogov 29902e0e46 Merge branch 'PHP-7.4'
* PHP-7.4:
  More edge case fixes that may cause bug #78106
2019-06-14 13:10:39 +03:00
Dmitry Stogov ca486893ba Merge branch 'PHP-7.4'
* PHP-7.4:
  Attempt to fix edge conditions that may cause bug #78106
2019-06-14 12:48:00 +03:00
Nikita Popov 7e066a4b3b Merge branch 'PHP-7.4' 2019-06-14 11:37:41 +02:00
Nikita Popov ca2a6f75bf Merge branch 'PHP-7.4' 2019-06-14 11:14:08 +02:00
Nikita Popov 23dc29c8e8 Merge branch 'PHP-7.4' 2019-06-14 09:30:22 +02:00
Joe Watkins 0a5896291b Merge branch 'PHP-7.4'
* PHP-7.4:
  disable phpdbg on i386 builds [ci skip]
2019-06-14 08:30:46 +02:00
Dmitry Stogov 5883dbcb18 Fixed incorect register allocation in ZTS build 2019-06-14 00:29:22 +03:00
Christoph M. Becker b994fd81cb Throw TypeError instead of warning in case of invalid path
For consistency with imagegd(), imagegd2() and imagexbm(), which throw
a TypeError if a path containing NUL bytes is given, we throw a
TypeError for the other image writer functions as well.
2019-06-13 22:37:50 +02:00
Côme Chilliet 890e846d85 Merge branch 'PHP-7.4'
* PHP-7.4:
  Some more string conversion handling, fixing bug #77958
  Avoid converting zval when not needed
2019-06-13 22:15:41 +02:00
Nikita Popov 03b299574b Merge branch 'PHP-7.4' 2019-06-13 16:53:25 +02:00
Christoph M. Becker 2018615c2a Remove superfluous CLEAN sections
These actually should have been removed with commit be73ae3[1].

[1] <https://github.com/php/php-src/commit/be73ae31324f7f3294a9467c0646dba4324c78ef>
2019-06-13 14:33:41 +02:00
Nikita Popov f36282c521 Merge branch 'PHP-7.4' 2019-06-13 14:22:48 +02:00
Christoph M. Becker 692673f6a4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add BMP support to PHP info
2019-06-13 13:07:30 +02:00
Nikita Popov 026023bd71 Merge branch 'PHP-7.4' 2019-06-13 12:54:17 +02:00
Nikita Popov b2b9c4785f Merge branch 'PHP-7.4' 2019-06-13 12:41:14 +02:00
Nikita Popov 3b27689d46 Fix helper call on 32-bit
This is using the fast-call calling convention. Use FCARG1a and
same code for 32-bit and 64-bit.
2019-06-13 12:11:23 +02:00
Nikita Popov 792e38d863 Fix bug #78154 with JIT 2019-06-13 11:53:31 +02:00
Nikita Popov 719a19d825 Merge branch 'PHP-7.4' 2019-06-13 10:59:18 +02:00
Nikita Popov 77e7acfa59 Reenable -Werror for macos build 2019-06-13 10:34:49 +02:00
Nikita Popov 51d82da6b0 Suppress -Wtautological-compare in dasc file 2019-06-13 09:59:42 +02:00
Nikita Popov 39034dbc67 Determine thread ID on macos
Also initialize the variable to 0 -- I don't think we really care
if this is not determine on some platform, but it should at least
not be uninitialized.
2019-06-13 09:59:42 +02:00
Nikita Popov af10245034 Merge branch 'PHP-7.4' 2019-06-13 09:38:19 +02:00
Joe Watkins d7bb0d5840 Merge branch 'PHP-7.4'
* PHP-7.4:
  test for bug #78151
2019-06-12 22:39:43 +02:00
Joe Watkins 90ad179044 temporarily disable werror on mac in master because of build failures in JIT 2019-06-12 21:54:22 +02:00
Joe Watkins f93cd21b52 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "micro-optimization"

This micro optimization caused several bugs in at least Xdebug, while
i_init_func_execute_data is not exported, APIs that are exported call it
this makes their use awkward for no real gain.
2019-06-12 20:21:59 +02:00
twosee 61f78de486 Constify some char* arguments or return values of ZEND_API
Closes GH-4247.
2019-06-12 16:49:32 +02:00
Nikita Popov ff8002fc7c Mark label as potentially unused 2019-06-12 16:47:48 +02:00
twosee 63171d88f2 Add do...while(0) for RETURN_* and ZVAL_* APIs
Closes GH-4255.
2019-06-12 16:17:16 +02:00
Nikita Popov cf527e93b1 Merge branch 'PHP-7.4' 2019-06-12 16:16:39 +02:00
Nikita Popov eabb8a6324 Skip syntax errors in skipif conditions 2019-06-12 15:56:38 +02:00
Nikita Popov b277548ed5 Fix two 32-bit tests for zpp changes 2019-06-12 15:47:42 +02:00
Nikita Popov 859e3f36f9 Merge branch 'PHP-7.4' 2019-06-12 15:40:23 +02:00
Nikita Popov 5ae158a004 Merge branch 'PHP-7.4' 2019-06-12 15:28:41 +02:00
Joe Watkins d2a1e84610 Merge branch 'PHP-7.4'
* PHP-7.4:
  we are not running database tests on macos, there is no need to install mysql or start pg
2019-06-12 15:10:28 +02:00
Nikita Popov 171938bc6a Merge branch 'PHP-7.4' 2019-06-12 15:04:16 +02:00
Nikita Popov 89df091529 Merge branch 'PHP-7.4' 2019-06-12 13:50:48 +02:00
Derick Rethans 650e499839 Merge branch 'PHP-7.4' 2019-06-12 12:42:06 +01:00
Nikita Popov eea206a06c Merge branch 'PHP-7.4' 2019-06-12 13:18:04 +02:00
Christoph M. Becker fc7b3cc7ca Fix nullbyte tests
As of PHP 8.0.0, failing ZPP throws instead of issuing warnings, to
which we have to cater to.
2019-06-12 12:48:03 +02:00
Christoph M. Becker be73ae3132 Merge branch 'PHP-7.4'
* PHP-7.4:
  Simplify GD null byte injection tests
2019-06-12 12:06:24 +02:00
Nikita Popov 477d1e02ae Merge branch 'PHP-7.4' 2019-06-12 11:54:21 +02:00
Derick Rethans 966e629f91 Merge branch 'PHP-7.4' 2019-06-12 08:58:19 +01:00
Joe Watkins 3926fa44a6 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky zip tests, order is OS dependent
2019-06-12 09:48:09 +02:00
Remi Collet 19d8e054b1 Merge branch 'PHP-7.4'
* PHP-7.4:
  add comment about pg_config/pkgconfig
2019-06-12 09:39:24 +02:00
Nikita Popov 9fa009c86d Merge branch 'PHP-7.4' 2019-06-12 09:29:06 +02:00
Joe Watkins 6df77cafb9 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky sockets test - form of response is OS dependent
2019-06-12 08:48:18 +02:00
Joe Watkins 2a11d88bc5 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky test on OSX
2019-06-12 08:33:19 +02:00
Joe Watkins 1e33a8ced4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "ext/pgsql: Use PKG_CHECK_MODULES to detect the pq library"
2019-06-12 08:01:03 +02:00
Joe Watkins 74a82ca91c Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky gd tests
2019-06-12 07:58:56 +02:00
Joe Watkins 12f1ab02eb Merge branch 'PHP-7.4'
* PHP-7.4:
  disable phpdbg on macosx, it's not well tested there and is skewing results [ci skip]
2019-06-12 06:59:10 +02:00
Joe Watkins b8269210d4 Merge branch 'PHP-7.4'
* PHP-7.4:
  ext/standard: Use PKG_CHECK_MODULES to detect the Argon2 library
2019-06-12 06:55:14 +02:00
Nikita Popov 466666c616 Merge branch 'PHP-7.4' 2019-06-11 17:12:33 +02:00
Nikita Popov d570620917 Merge branch 'PHP-7.4' 2019-06-11 16:21:57 +02:00
Nikita Popov 0715aeeef2 Merge branch 'PHP-7.4' 2019-06-11 15:49:36 +02:00
Nikita Popov 180b29a493 Merge branch 'PHP-7.4' 2019-06-11 15:41:13 +02:00
Joe Watkins 5fd027e35c Merge branch 'PHP-7.4'
* PHP-7.4:
  This reverts 0e5d4ea555 to fix the build on MacOSX
2019-06-11 15:15:31 +02:00
Christoph M. Becker 2973cb2b1d Merge branch 'PHP-7.4'
* PHP-7.4:
  Next is 7.3.8
2019-06-11 13:32:42 +02:00
Nikita Popov e4fae9c061 Merge branch 'PHP-7.4' 2019-06-11 13:16:38 +02:00
Joe Watkins 8f93beb06e use XFAILIF rather than XFAIL to avoid warnings [ci skip] 2019-06-11 12:55:38 +02:00
Nikita Popov 036b0a1d4d Merge branch 'PHP-7.4' 2019-06-11 12:30:11 +02:00
Remi Collet 3cca69cf39 Merge branch 'PHP-7.4'
* PHP-7.4:
  next is 7.2.21
2019-06-11 12:19:55 +02:00
Joe Watkins f7342e298b Merge branch 'PHP-7.4'
* PHP-7.4:
  drop docker until tested locally
2019-06-11 11:09:24 +02:00
Joe Watkins f6175955a2 Merge branch 'master' of git://github.com/php/php-src 2019-06-11 10:43:26 +02:00
Joe Watkins 3364f5f826 Merge branch 'PHP-7.4'
* PHP-7.4:
  checkout depth of one doesn't always work with batched builds, it seems
2019-06-11 10:42:54 +02:00
Nikita Popov 7d98dd9c1c Merge branch 'PHP-7.4' 2019-06-11 10:29:20 +02:00
Joe Watkins db86375c3e Merge branch 'PHP-7.4'
* PHP-7.4:
  i386 build
2019-06-11 10:25:39 +02:00
Nikita Popov 14692df82b Remove ldap zpp tests
Missed these in the zpp test purge -- they've been failing on master
for a while, but nobody compiles with ldap.
2019-06-11 10:09:40 +02:00
Tyson Andre cdc82f19d8 Fix php 8.0's opcache flags for pathinfo()
See https://php.net/pathinfo

This fixes a bug introduced in the cleanup for commit
0d79c70cf3

`pathinfo($str, PATHINFO_EXTENSION)` will always return a string
(if there is no extension, the function returns the empty string)
2019-06-11 09:09:50 +02:00
Joe Watkins 678e3eb0b7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in opcache function flag info (mage->image)
2019-06-11 09:08:31 +02:00
Tyson Andre cbaf37ff75 Delete opcache flags for php 8.0's removed mbereg*() aliases
See UPGRADING for Mbstring.
All of these are aliases of corresponding `mb_*`
functions that existed in php 7 but were removed in php 8.

Other functions such as gzgetss were already removed.
2019-06-11 09:07:42 +02:00
Joe Watkins 6c195fb846 Merge branch 'PHP-7.4'
* PHP-7.4:
  Clean up opcache func flags for set_socket_blocking
2019-06-11 09:06:48 +02:00
Joe Watkins 0542eb5bd5 Rest of c3e78efecf 2019-06-11 09:05:07 +02:00
Joe Watkins c3e78efecf Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix a typo in opcache func info for "get_parrent_class"
2019-06-11 09:00:37 +02:00
Joe Watkins d8f712c302 Merge branch 'PHP-7.4'
* PHP-7.4:
  ext/pgsql: Use PKG_CHECK_MODULES to detect the pq library
2019-06-11 08:54:00 +02:00
Christoph M. Becker b30d54ce05 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77937: preg_match failed
2019-06-11 08:45:32 +02:00
Dmitry Stogov 2b5a3afead Merge branch 'PHP-7.4'
* PHP-7.4:
  micro-optimization
2019-06-10 16:43:36 +03:00
Joe Watkins 7361701351 Merge branch 'PHP-7.4'
* PHP-7.4:
  watchpoints have flaws in implementation
2019-06-10 14:23:55 +02:00
Joe Watkins 1b9ffcb21b Merge branch 'PHP-7.4'
* PHP-7.4:
  BIND_LEXICAL has a meaningless line number
2019-06-10 14:19:58 +02:00
Dmitry Stogov 09a24d0b7c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed possible misalignment in 32-bit build.
2019-06-10 12:53:34 +03:00
Joe Watkins f5e79e0b40 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky ipv4 loopback test
2019-06-10 10:35:57 +02:00
Peter Kokot 76323fefac Merge branch 'PHP-7.4'
* PHP-7.4:
  Extend wildcard files section in EditorConfig [ci skip]
  Simplify LiteSpeed SAPI module version
  Use PHP_VERSION for zend modules
2019-06-09 22:55:43 +02:00
Joe Watkins c007b5bfba Merge branch 'PHP-7.4'
* PHP-7.4:
  azure macos
2019-06-09 22:23:45 +02:00
Joe Watkins 12bba40c1b Merge branch 'PHP-7.4'
* PHP-7.4:
  azure image update [not skipping on purpose to test new configuration]
2019-06-09 13:40:34 +02:00
Joe Watkins a583241704 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78132 wrong line number on ZEND_BIND_STATIC for lexical vars
2019-06-08 21:48:00 +02:00
Dmitry Stogov 18e4b4bd44 Merge branch 'PHP-7.4'
* PHP-7.4:
  Restored NEWS entry
2019-06-07 12:39:40 +03:00
Nikita Popov 9faf10bbe9 Merge branch 'PHP-7.4' 2019-06-07 10:58:06 +02:00
Dmitry Stogov d7aa152d3f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77135 (Extract with EXTR_SKIP should skip $this)
2019-06-07 11:50:30 +03:00
Nikita Popov 016687184e Merge branch 'PHP-7.4' 2019-06-07 09:54:05 +02:00
Nikita Popov 98de4207d8 Merge branch 'PHP-7.4' 2019-06-07 09:49:22 +02:00
Nikita Popov 590ecaa2ff Merge branch 'PHP-7.4' 2019-06-07 09:35:41 +02:00
Peter Kokot b7afd7b375 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Catch up with 642b8d00e0
2019-06-07 01:25:20 +02:00
Christoph M. Becker 3b77f269e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use zero port in socket_(export|import)_stream-4-win.phpt
2019-06-06 16:19:37 +02:00
Christoph M. Becker bba3ffc086 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #78094: File Search Problem Excessive Time
2019-06-06 15:56:13 +02:00
Christoph M. Becker 1fcfb636f3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test regarding Unix Domain Sockets on Windows
2019-06-06 15:09:57 +02:00
Nikita Popov 00d549d73d Merge branch 'PHP-7.4' 2019-06-06 14:56:58 +02:00
Dmitry Stogov 63deb0d569 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use ZEND_ASSUME() to perform the following check only on "slow" path.
2019-06-06 14:23:02 +03:00
Dmitry Stogov dbd1ecd09f Merge branch 'PHP-7.4'
* PHP-7.4:
  Support for exceptions thrown during "Array to string conversion" error processing
  Reduce over-specialization for quite seldom instructions
2019-06-06 14:10:23 +03:00
Nikita Popov 3820296c42 Merge branch 'PHP-7.4' 2019-06-06 11:48:54 +02:00
Nikita Popov 8b2741c1c3 Fix accidentially dropped type
I only meant to drop the MAY_BE_FALSE here, not the MAY_BE_ARRAY...
2019-06-06 10:07:59 +02:00
Christoph M. Becker ac8c4a4853 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78114: segfault when calling sodium_* functions from eval
2019-06-06 10:01:44 +02:00
Nikita Popov 252216b2de Remove possible false return value from get_object_vars()
I'm not sure this one ever happens in practice (and we might want
to forbid NULL return from get_properties), but if it does, return
an empty array instead of false.
2019-06-06 09:49:25 +02:00
Dmitry Stogov a8ac6e6604 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Update release-process.md
2019-06-06 02:24:00 +03:00
Dmitry Stogov e029cc4dd4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Cheaper checks for exceptions thrown from __toString()
2019-06-06 02:23:17 +03:00
Sara Golemon 642b8d00e0 Update release-process.md 2019-06-05 19:05:38 -04:00
Dmitry Stogov b4d21310cb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed reference-counting
2019-06-06 01:40:59 +03:00
Joe Watkins d6f93ca753 fix test 2019-06-05 20:23:31 +02:00
Joe Watkins 69f6458849 Revert "this test is flaky on azure, and can't see why from current output"
This reverts commit 6f9a06cb74.
2019-06-05 20:22:44 +02:00
Joe Watkins 120d383020 Merge branch 'PHP-7.4'
* PHP-7.4:
  junit testcase classname is used as filename on azure
2019-06-05 19:28:41 +02:00
Joe Watkins 9e49a545aa Merge branch 'PHP-7.4'
* PHP-7.4:
  this test is flaky on azure, and can't see why from current output so refactored, and restored an accidentally removed check (resource)
2019-06-05 19:26:33 +02:00
Dmitry Stogov 5f3ee3afe7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent generation of specialized ZEND_ASSIGN_OP_..._STATIC_PROP handlers, that call unspecialized helper, anyway.
2019-06-05 17:38:36 +03:00
Joe Watkins f47bd9f17a Merge branch 'PHP-7.4'
* PHP-7.4:
  fix flaky posix test
2019-06-05 16:36:41 +02:00
Nikita Popov cc286e5bd5 Merge branch 'PHP-7.4' 2019-06-05 15:34:56 +02:00
Nikita Popov d3ed9d8192 Make sure array_splice() always returns an array
Return an array even if the return value isn't used. This allows us
to add the arginfo return type.
2019-06-05 14:56:32 +02:00
Nikita Popov 7686b0b889 Merge branch 'PHP-7.4' 2019-06-05 14:53:50 +02:00
Nikita Popov 03a9c2df7b Merge branch 'PHP-7.4' 2019-06-05 11:58:20 +02:00
Remi Collet cd687a4953 Merge branch 'PHP-7.4'
* PHP-7.4:
  ignore first gets time which is usually a few ms only
2019-06-05 11:50:20 +02:00
Nikita Popov 21947e37a2 Merge branch 'PHP-7.4' 2019-06-05 11:30:20 +02:00
Remi Collet 6a0a091333 Merge branch 'PHP-7.4'
* PHP-7.4:
  keep DIR option to --with-unixODBC for old versions without libodbc.pc
2019-06-05 10:56:25 +02:00
Nikita Popov 401e5ebf24 Merge branch 'PHP-7.4' 2019-06-05 10:06:04 +02:00
Gabriel Caruso 192170a39a Add return type to some array_* functions 2019-06-05 00:13:52 -03:00
Joe Watkins 2cfb525096 Merge branch 'PHP-7.4'
* PHP-7.4:
  add azure pipelines badge to readme [ci skip]
2019-06-04 17:12:10 +02:00
Nikita Popov 6f31f03fd7 Merge branch 'PHP-7.4' 2019-06-04 16:28:14 +02:00
Nikita Popov 623eedbbd5 Merge branch 'PHP-7.4' 2019-06-04 16:14:46 +02:00
Nikita Popov f721f2fa12 Merge branch 'PHP-7.4' 2019-06-04 15:09:01 +02:00
Christoph M. Becker 1655b28d91 Merge branch 'PHP-7.4'
* PHP-7.4:
  PHP 7.4 is built with Visual Studio 2019 on Windows
2019-06-04 14:41:56 +02:00
Nikita Popov b1bdae7621 Merge branch 'PHP-7.4' 2019-06-04 12:25:16 +02:00
Nikita Popov 0b0333be83 Merge branch 'PHP-7.4' 2019-06-04 10:18:57 +02:00
Nikita Popov eb8451e6a2 Merge branch 'PHP-7.4' 2019-06-04 10:10:56 +02:00
Joe Watkins 56e3d8deae Merge branch 'PHP-7.4'
* PHP-7.4:
  should be or
2019-06-04 08:23:50 +02:00
Joe Watkins 0cd314ebc1 Merge branch 'PHP-7.4'
* PHP-7.4:
  always run
2019-06-04 08:13:03 +02:00
Joe Watkins a7bfaab487 Merge branch 'PHP-7.4'
* PHP-7.4:
  run/publish test on success and failure
2019-06-04 08:11:15 +02:00
Joe Watkins 43a6b23795 Merge branch 'PHP-7.4'
* PHP-7.4:
  always run/publish tests, even when failing
2019-06-04 08:07:01 +02:00
Joe Watkins 79e76d7bd7 Merge branch 'PHP-7.4'
* PHP-7.4:
  always run/publish tests
2019-06-04 07:51:06 +02:00
Remi Collet 2e28b2fc51 Merge branch 'PHP-7.4'
* PHP-7.4:
  this was in 7.3.5, not 7.3.6
2019-06-04 07:19:59 +02:00
Joe Watkins 7857cb6dc0 Merge branch 'PHP-7.4'
* PHP-7.4:
  correct zts flags for 7.4
2019-06-04 05:04:51 +02:00
Joe Watkins a962803078 Merge branch 'PHP-7.4'
* PHP-7.4:
  get the name of the branch right
2019-06-03 22:47:21 +02:00
Joe Watkins 6a551b986f Merge branch 'PHP-7.4'
* PHP-7.4:
  Set up CI with Azure Pipelines
2019-06-03 22:28:02 +02:00
Nikita Popov 7013e8be85 Merge branch 'PHP-7.4' 2019-06-03 18:59:21 +02:00
Nikita Popov 6b57898057 Merge branch 'PHP-7.4' 2019-06-03 15:15:35 +02:00
Nikita Popov a61084f48b Merge branch 'PHP-7.4' 2019-06-03 14:28:19 +02:00
Nikita Popov 001d434449 Finish func_info updates for ext/standard 2019-06-03 11:26:25 +02:00
Nikita Popov fd911a7124 Expect string argument in hexdec, octdec, bindec
Instead of accepting zval and converting to string. Also rewrite the
functions to make it obvious that they cannot return false.
2019-06-03 11:26:25 +02:00
Joe Watkins ef41eaa5c6 Merge branch 'PHP-7.4'
* PHP-7.4:
  remove reverted commit from changelog
2019-06-03 11:25:45 +02:00
Joe Watkins 29722c7a0d Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fix bug #62397 - disable_functions does not work with eval."
2019-06-03 11:20:23 +02:00
Christoph M. Becker d5280438d5 Update ZPP docs
The `L` specifier is no longer supported, see
<http://git.php.net/?p=php-src.git;a=commit;h=8a0965e3d694037837a8f70f280e7d14dd7778eb>.
2019-06-03 10:37:28 +02:00
Christoph M. Becker 1a5fde5894 Fix typo 2019-06-03 10:34:32 +02:00
Nikita Popov 321fe88935 Add Z_PARAM_NUMBER and use it for some functions 2019-06-03 10:14:05 +02:00
Nikita Popov 8a0965e3d6 Remove zpp L specifier
We don't use this internally anymore, and external usages should
be encouraged to move towards 'l'.
2019-06-03 09:39:17 +02:00
Nikita Popov b1e52cab62 Merge branch 'PHP-7.4' 2019-06-03 09:21:13 +02:00
Nikita Popov 1df8175b61 Convert fetch_resource warnings into TypeErrors
More type checks that are not part of zpp and should generate a
TypeError in PHP 8.
2019-06-03 09:17:12 +02:00
Jakub Zelenka 29d79dc2e5 Merge branch 'PHP-7.4' 2019-06-02 19:15:00 +01:00
Anatol Belski 09ac6eb36d Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't involve output check in the test
2019-06-01 23:33:00 +02:00
Gabriel Caruso 7393777da9 Add return type for string functions 2019-06-01 11:52:06 -03:00
Gabriel Caruso 1409a3b153 Add boolean return type for ctype extension functions 2019-06-01 11:52:06 -03:00
Gabriel Caruso f3f159a779 Add double return type for math functions 2019-06-01 11:52:06 -03:00
Gabriel Caruso b27366f29d Add return type for bcmath extension functions
Except for bcpowmod, as it returns string|false
2019-06-01 11:50:01 -03:00
Anatol Belski 661c22bb02 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix expect section
2019-06-01 14:51:46 +02:00
Anatol Belski f0cbcfd62d Merge branch 'PHP-7.4'
* PHP-7.4:
  Update SDK version for AppVeyor
2019-06-01 13:45:53 +02:00
Christoph M. Becker e720fb7565 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix ZTS issue regarding new Windows CTRL handling API
2019-06-01 09:36:25 +02:00
Joe Watkins 2ab1c03186 Merge branch 'PHP-7.4'
* PHP-7.4:
  skip where no groups available
2019-06-01 07:36:52 +02:00
Joe Watkins 39646afacb Merge branch 'PHP-7.4'
* PHP-7.4:
  only clear when showing in parallel runner
2019-06-01 06:13:43 +02:00
Anatol Belski 35ff798b34 Merge branch 'PHP-7.4'
* PHP-7.4:
  Change ZPP only if compiled with ICU >= 64
  Update tests for ICU 64
2019-06-01 02:28:15 +02:00
Anatol Belski a85deaeff9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix var name
2019-05-31 20:51:18 +02:00
Christoph M. Becker c89b788a8a Merge branch 'PHP-7.4'
* PHP-7.4:
  SimpleXMLElement and ResourceBundle implement Countable
2019-05-31 19:01:41 +02:00
Nikita Popov bb3421b554 Merge branch 'PHP-7.4' 2019-05-31 17:00:31 +02:00
Nikita Popov f20b2c71e5 Merge branch 'PHP-7.4' 2019-05-31 15:40:04 +02:00
Nikita Popov 9585ab3614 Merge branch 'PHP-7.4' 2019-05-31 14:04:27 +02:00
Nikita Popov 775e86344f Merge branch 'PHP-7.4' 2019-05-31 12:56:51 +02:00
Nikita Popov b3b0032ced Merge branch 'PHP-7.4' 2019-05-31 12:38:28 +02:00
Nikita Popov 673c70a4ba A few more func info updates 2019-05-31 11:24:47 +02:00
Dmitry Stogov b4a3b49eab Merge branch 'PHP-7.4'
* PHP-7.4:
  Better hot/cold code splitting
2019-05-31 12:22:08 +03:00
Nikita Popov 0f337e901b Merge branch 'PHP-7.4' 2019-05-31 11:11:07 +02:00
Nikita Popov 0ba34824f5 Use TypeError instead of warning in implode()
These are again manual argument type checks.
2019-05-31 11:04:13 +02:00
Nikita Popov 8230d27c98 Merge branch 'PHP-7.4' 2019-05-31 10:54:58 +02:00
Nikita Popov 4e391ee3a3 Convert some warnings to TypeErrors in array functions
This is manual type and argument number checking code that was not
covered by the zpp move to TypeErrors.
2019-05-31 10:52:06 +02:00
Nikita Popov 4fff40e0d2 Merge branch 'PHP-7.4' 2019-05-31 09:18:09 +02:00
Dmitry Stogov f43e483ffb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed compilation warning
2019-05-31 01:00:12 +03:00
Dmitry Stogov d7710ef517 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't specialize "cold" handlers
2019-05-31 00:32:18 +03:00
Dmitry Stogov 8491800eaf Merge branch 'PHP-7.4'
* PHP-7.4:
  Removed useless specialization. Specialized handlers called not specialized helpers.
2019-05-31 00:16:20 +03:00
Dmitry Stogov 10cf2c07f2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce register pressure by reloading values on CPUs with few general purpose registers
2019-05-31 00:15:18 +03:00
Craig Duncan facfbf3c9c Update the DatePeriod read/write handlers 2019-05-30 19:16:31 +01:00
Craig Duncan bc87424835 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add a test for bug #65672
  Ensure the internal properties cannot be overwritten
2019-05-30 19:15:58 +01:00
Dmitry Stogov 0a6a350371 Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable "bad" optimisations only for emulation loop
2019-05-30 20:43:17 +03:00
Gabriel Caruso edd7fb2a16 Add boolean return type for is_* functions 2019-05-30 13:55:36 -03:00
Anatol Belski 1f18a29514 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update libmagic.patch
2019-05-30 14:09:48 +02:00
Anatol Belski dc72927c22 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update year
2019-05-30 14:03:28 +02:00
Anatol Belski 4b0b703cbe Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update NEWS
2019-05-30 14:00:14 +02:00
Anatol Belski bd0834434f Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for bug #78075, json detection
2019-05-30 13:33:02 +02:00
Joe Watkins 6642d2d46f Merge branch 'PHP-7.4'
* PHP-7.4:
  have parallel test runner respect NO_INTERACTION
2019-05-30 07:46:50 +02:00
Anatol Belski a6f50eb317 Merge branch 'PHP-7.4'
* PHP-7.4:
  Partially reapply ba40f505e5
2019-05-30 02:48:37 +02:00
Anatol Belski 055ed113f7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix datatype
2019-05-30 02:35:28 +02:00
Anatol Belski 8f85961326 Merge branch 'PHP-7.4'
* PHP-7.4:
  Ported limagic 5.37
2019-05-30 02:23:20 +02:00
Nikita Popov 4241258d74 Fix FPM tests for PHP 8 2019-05-29 17:31:10 +02:00
Nikita Popov 45a0656e95 Remove get() object handler
Now that set() is gone, there is little point in keeping get(), as
it is essentially just a different way of writing cast_object()
now.

Closes GH-4202.
2019-05-29 17:15:19 +02:00
Nikita Popov 693955c5c5 Merge branch 'PHP-7.4' 2019-05-29 17:07:52 +02:00
Nikita Popov 07fae1fd6e escapeshellarg/escapeshellcmd: Throw TypeError instead of E_ERROR 2019-05-29 16:57:53 +02:00
Nikita Popov 0d239523a7 Merge branch 'PHP-7.4' 2019-05-29 16:48:37 +02:00
Nikita Popov a1a8d14485 Update more func info information for ext/standard 2019-05-29 15:30:06 +02:00
Nikita Popov e94a71b7f1 Enable JIT in Travis build
All tests should pass now.
2019-05-29 14:06:28 +02:00
Dmitry Stogov 207d928da8 Merge branch 'PHP-7.4'
* PHP-7.4:
  zend_assign_to_variable() optimization
2019-05-29 13:59:01 +03:00
Nikita Popov c7a67c6dce Disable JIT for ext/ffi/tests/200.phpt
JIT assumes that the zend_write callback will not be changed at
runtime, which I think is reasonable, so don't run this test
under JIT.
2019-05-29 12:11:32 +02:00
Nikita Popov b7a6430a52 Don't JIT functions with many blocks
Avoids a stack overflow in Zend/tests/runtime_compile_time_binary_operands.php
that happens in recursive RPO calculation. We could make that code
non-recursive, but I don't think it makes sense to JIT this kind of
function in the first place.
2019-05-29 11:49:44 +02:00
Dmitry Stogov 6d89553c48 Merge branch 'PHP-7.4'
* PHP-7.4:
  Mark "cold" functions
2019-05-29 11:50:27 +03:00
Derick Rethans 1aa8d0e680 Merge branch 'PHP-7.4' 2019-05-29 09:35:18 +01:00
Nikita Popov 31a516cf96 Remove set() object handler 2019-05-29 10:00:06 +02:00
Nikita Popov cf610347a7 Merge branch 'PHP-7.4' 2019-05-29 09:52:43 +02:00
Dmitry Stogov 7c39ff8ef5 Merge branch 'PHP-7.4'
* PHP-7.4:
  zend_do_fcall_overloaded() doesn't have to be exported
2019-05-29 10:35:20 +03:00
Christoph M. Becker 373d032e22 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS for 7.3.6
2019-05-29 09:28:03 +02:00
Christoph M. Becker 66b0ba4ce0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused variable
2019-05-29 09:10:28 +02:00
Remi Collet 56b4dd5af4 Merge branch 'PHP-7.4'
* PHP-7.4:
  add NEWS entries for sec fix
2019-05-29 08:54:13 +02:00
Remi Collet 5a9c2934cb Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src: (79 commits)
  disabled functions must not have return type
  Fix conditional compilation
  These macros should not expect any argument
  Avoid cold code duplication
  Restore the execute bit for run-tests.php
  Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
  Respect optimization_level when running JIT inference
  Fix type inference of SEND_UNPACK with empty array
  SCCP: Fix handling of ASSIGN_OBJ_REF
  Avoid usage of internal get/set object handlers. They are going to be removed in PHP-8. Scalar FFI values now should be accessed through special "cdata" property.
  SCCP: Don't perform partial object propagation for typed props
  JIT: Fix SWITCH_LONG/STRING codegen with exact type
  Revert accidental changes
  hebrev/hebrevc: Don't return false for empty string
  Update MAY_BE_NULL info for more ext/standard functions
  Avoid double copying
  Update MAY_BE_NULL for parts of ext/standard
  Update MAY_BE_NULL func_info for Zend functions
  Fixed register allocation
  Remove FUNC_MAY_WARN
  ...
2019-05-29 08:41:50 +02:00
Joe Watkins 9f94566ff8 Merge branch 'PHP-7.4'
* PHP-7.4:
  disabled functions must not have return type
  Restore the execute bit for run-tests.php
2019-05-29 08:32:06 +02:00
Anatol Belski 37d01ff81a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix conditional compilation
  These macros should not expect any argument
2019-05-29 02:54:15 +02:00
Dmitry Stogov c952cc9faa Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid cold code duplication
2019-05-29 01:43:47 +03:00
Dmitry Stogov b2cdde0826 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
2019-05-28 20:19:15 +03:00
Nikita Popov 4d1d5babde Respect optimization_level when running JIT inference
Don't enable unsafe type inference by default -- we'll segfault on
some FFI tests.
2019-05-28 17:29:28 +02:00
Nikita Popov e1c903230e Merge branch 'PHP-7.4' 2019-05-28 16:41:30 +02:00
Nikita Popov 0d744f78e6 Merge branch 'PHP-7.4' 2019-05-28 16:15:54 +02:00
Dmitry Stogov 51ddc59d9f Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid usage of internal get/set object handlers. They are going to be removed in PHP-8. Scalar FFI values now should be accessed through special "cdata" property.
2019-05-28 17:14:28 +03:00
Nikita Popov 8b3a71f904 Merge branch 'PHP-7.4' 2019-05-28 15:46:15 +02:00
Nikita Popov 0bd1fc225d JIT: Fix SWITCH_LONG/STRING codegen with exact type
We were not loading the operand if the type was known exactly.
2019-05-28 15:25:19 +02:00
Nikita Popov 7791784bc9 Revert accidental changes
These MAY_BE_FALSE should not have been dropped...
2019-05-28 13:14:58 +02:00
Nikita Popov 4da316d189 hebrev/hebrevc: Don't return false for empty string
There is nothing special about the empty string in this context,
we should pass it through unchanged.
2019-05-28 13:12:38 +02:00
Nikita Popov 0d79c70cf3 Update MAY_BE_NULL info for more ext/standard functions 2019-05-28 13:12:38 +02:00
Dmitry Stogov c64fe84f8b Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid double copying
2019-05-28 13:35:29 +03:00
Nikita Popov d95c15e371 Update MAY_BE_NULL for parts of ext/standard
Also update proto comments to be more accurate.
2019-05-28 12:11:32 +02:00
Nikita Popov 1493c73582 Update MAY_BE_NULL func_info for Zend functions
These cannot return NULL anymore in PHP 8.
2019-05-28 11:43:23 +02:00
Dmitry Stogov 38c75f8fd3 Fixed register allocation 2019-05-28 12:39:13 +03:00
Nikita Popov 8126658444 Remove FUNC_MAY_WARN
We are no longer constructing the local symbol table when calling
error handlers since 2f1f34952e,
which was the original motivation for having this information and
was used in an earlier version of the JIT.
2019-05-28 11:23:02 +02:00
Nikita Popov 0b66563eee Merge branch 'PHP-7.4' 2019-05-28 11:15:37 +02:00
Nikita Popov 521a919caf Add return type information to some ext/standard functions
Just the first few functions in basic_functions.c to get started.

If anyone is interested in continuing this, PRs to add type info
will be accepted against master, with the following caveats:

 * Return types only, we are not ready to add argument types yet.
 * Only for functions. For methods the addition of return types is
   BC breaking and needs to be carefully considered.
 * Only in cases where we can actually express the return type, we
   don't have int|false and similar.
2019-05-28 11:01:10 +02:00
Nikita Popov bd4c9bce68 zend_func_info: Remove unnecessary type callbacks
In PHP 8 these functions will throw on invalid arguments, so there
is no need to distinguish the error cases.
2019-05-28 10:42:12 +02:00
Dmitry Stogov 6a8b5599df Merge branch 'PHP-7.4'
* PHP-7.4:
  Put phpinfo() related code into cold code segment
2019-05-28 11:04:47 +03:00
Joe Watkins b675892ef9 Merge branch 'PHP-7.4'
* PHP-7.4:
  bump version after release
2019-05-28 09:55:18 +02:00
Stanislav Malyshev 0403152897 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77967 - Bypassing open_basedir restrictions via file uris
2019-05-27 21:36:15 -07:00
Stanislav Malyshev d99de36e53 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77988 - heap-buffer-overflow on php_jpg_get16
2019-05-27 17:28:34 -07:00
Stanislav Malyshev ae436a2627 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix function name
2019-05-27 17:21:32 -07:00
Stanislav Malyshev 12d68d0272 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix bug #78069 - Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow
  Fix #77973: Uninitialized read in gdImageCreateFromXbm
2019-05-27 16:49:37 -07:00
Christoph M. Becker 8a11f3b166 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent parallel test conflicts
2019-05-27 18:43:18 +02:00
Nikita Popov cf599e56ad Merge branch 'PHP-7.4' 2019-05-27 17:44:55 +02:00
Nikita Popov a1284b4241 Remove special handling of zero-arg funcs in func_info
In PHP 8 we always throw on zpp failure, so we can always return the
type for the valid argument case only. We'll want to also adjust the
return type listings based on that (and drop MAY_BE_NULL/MAY_BE_FALSE
where possible).
2019-05-27 17:16:56 +02:00
Nikita Popov 45c663a9d3 Merge branch 'PHP-7.4' 2019-05-27 17:13:00 +02:00
Nikita Popov a08d068fce Merge branch 'PHP-7.4' 2019-05-27 16:15:08 +02:00
Nikita Popov 9d4c35e250 Merge branch 'PHP-7.4' 2019-05-27 16:14:25 +02:00
Dmitry Stogov 12fd1d4aae Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable pcre valgrind support only in DEBUG build (it affects performance)
2019-05-27 16:20:30 +03:00
Nikita Popov f38e163bb2 Merge branch 'PHP-7.4' 2019-05-27 15:16:57 +02:00
Dmitry Stogov b22cd2284d Merge branch 'PHP-7.4'
* PHP-7.4:
  Align .text segment for better huge pages usage
2019-05-27 13:38:07 +03:00
Christoph M. Becker 2e91a90f0b Merge branch 'PHP-7.4'
* PHP-7.4:
  Make more tests run on Windows
2019-05-27 10:52:25 +02:00
Nikita Popov 13f675b858 Merge branch 'PHP-7.4' 2019-05-27 09:38:33 +02:00
Jakub Zelenka 6166e2578e Merge branch 'PHP-7.4' 2019-05-26 18:51:39 +01:00
Anatol Belski 15cdc6d709 Merge branch 'PHP-7.4'
* PHP-7.4:
  Upgrade bundled PCRE2 to 10.33
2019-05-25 11:42:14 +02:00
Joe Watkins f8d53099c9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use PKG_CHECK_MODULES to detect valgrind, and share build config with pcre
2019-05-25 09:04:37 +02:00
Joe Watkins daa9172c10 Merge branch 'PHP-7.4'
* PHP-7.4:
  Define minimum required libffi version
2019-05-25 08:12:43 +02:00
Nikita Popov 038db18496 Merge branch 'PHP-7.4' 2019-05-24 11:02:03 +02:00
Christoph M. Becker e3d5aa42ca Merge branch 'PHP-7.4'
* PHP-7.4:
  list net/interfaces, trying to get the error on windows when possible
2019-05-24 10:23:12 +02:00
Nikita Popov 299cf7e78a Split up "parent" test cases
As the warnings are fatal errors in PHP 8, we can't test all of this
in a single file anymore.
2019-05-24 09:37:39 +02:00
Nikita Popov e06ec226bc Merge branch 'PHP-7.4' 2019-05-24 09:33:58 +02:00
Nikita Popov 378aeb8685 Merge branch 'PHP-7.4' 2019-05-23 13:41:26 +02:00
Christoph M. Becker 531005d5e7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent further potential test conflicts
2019-05-23 13:14:38 +02:00
Joe Watkins 92ab868332 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix notice in run-tests
2019-05-23 13:09:33 +02:00
Christoph M. Becker 5aa91d5732 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent potential test conflict
2019-05-23 11:41:18 +02:00
Nikita Popov 22797c0e00 Merge branch 'PHP-7.4' 2019-05-23 11:13:22 +02:00
Joe Watkins 927a29b0ed Merge branch 'PHP-7.4'
* PHP-7.4:
  run-tests improvements:   Add XLEAK section, this is made necessary by the support   for valgrind tools other than memcheck.   XLEAK is to a leaking test what XFAIL is to a failing test.   Tidy up summary a little to exclude Expected Fail and Expected Leak   when there are no expected fail/leaks
2019-05-23 10:59:03 +02:00
Nikita Popov c3ee12e786 Merge branch 'PHP-7.4' 2019-05-23 10:41:27 +02:00
Dmitry Stogov b63cb67421 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed double mutex unlock
2019-05-23 11:21:15 +03:00
Nikita Popov 200f5b407e Merge branch 'PHP-7.4' 2019-05-23 10:01:46 +02:00
Dmitry Stogov 89a7e94f05 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed race condition in opcache restart
2019-05-23 00:21:26 +03:00
Dmitry Stogov 26c348b3a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed dump of constant flags
2019-05-22 23:02:18 +03:00
Joe Watkins 824290f19b Merge branch 'PHP-7.4'
* PHP-7.4:
  add support for valgrind tools to run-tests.php
2019-05-22 20:20:36 +02:00
Nikita Popov 19295e8d5c Merge branch 'PHP-7.4' 2019-05-22 12:45:33 +02:00
Christoph M. Becker 5193e5c405 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test case for cURL 7.65.0
2019-05-22 12:03:10 +02:00
Nikita Popov 224353a18f Merge branch 'PHP-7.4' 2019-05-22 11:45:31 +02:00
Dmitry Stogov 3a76ef3d5d Merge branch 'PHP-7.4'
* PHP-7.4:
  .text segment may be not the first one
2019-05-22 12:21:07 +03:00
Nikita Popov c06f07f55b Merge branch 'PHP-7.4' 2019-05-22 09:35:49 +02:00
Nikita Popov f17931a8bb Merge branch 'PHP-7.4' 2019-05-22 09:06:23 +02:00
Rasmus Lerdorf 3345d71109 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix precedence issue causing sub-second timeouts to be 0 in curl_multi_select
2019-05-21 14:47:28 -07:00
Nikita Popov 69517d037b Merge branch 'PHP-7.4' 2019-05-21 17:35:33 +02:00
Nikita Popov dda0ae3e59 Merge branch 'PHP-7.4' 2019-05-21 17:18:01 +02:00
Nikita Popov 4c5f83f644 Merge branch 'PHP-7.4' 2019-05-21 17:04:17 +02:00
Remi Collet 48d4573226 Merge branch 'PHP-7.4'
* PHP-7.4:
  sodium: fix shared build
  enchant: fix shared build
2019-05-21 16:15:08 +02:00
Christoph M. Becker 68e6c1542e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix ASLR related invalid opline handler issues
2019-05-21 14:34:55 +02:00
Remi Collet 7dec7a154f Merge branch 'PHP-7.4'
* PHP-7.4:
  fix typo breaking shared build
2019-05-21 14:26:08 +02:00
Christoph M. Becker 5e0bcd24f4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent test case failure
2019-05-21 11:19:35 +02:00
Nikita Popov 817278250f Merge branch 'PHP-7.4' 2019-05-21 10:05:12 +02:00
Christoph M. Becker 77f02cda53 Merge branch 'PHP-7.4'
* PHP-7.4:
  use {TMP} placeholder in phpt tests
2019-05-21 09:03:51 +02:00
Dmitry Stogov 83b12d5b57 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent race condition in opcache_reset()
2019-05-21 00:08:22 +03:00
Dmitry Stogov 1e10c06f20 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78014 (Preloaded classes may depend on non-preloaded classes due to unresolved consts)
2019-05-20 18:16:01 +03:00
Christoph M. Becker ad0e58abf4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test wrt. opcache.error_log
2019-05-20 11:11:39 +02:00
Joe Watkins 3518c4dfe9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Rename *.l files to *.re"
2019-05-20 06:07:03 +02:00
Gabriel Caruso 53d1a42c32 Fix test related to 714d9fc358
The string value in the test array was removed, as the `chr` function 
only accepts an integer
2019-05-19 08:47:53 -03:00
Gabriel Caruso 0cc63b9d2d Fix tests related to 714d9fc358
Some changes did not get into master during merge conflits.
2019-05-19 07:25:56 -03:00
Peter Kokot 7e22347d0f Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Migrate Coding standards docs to Markdown
  Move CODING_STANDARDS to CODING_STANDARDS.md
2019-05-18 21:42:45 +02:00
Gabriel Caruso a437f065b8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make chr ZPP failure message consistent with ext/standard
2019-05-18 16:17:06 -03:00
Peter Kokot b91cf9bb8c Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Join Zend engine docs-alike files to readme
2019-05-18 20:39:30 +02:00
Peter Kokot 4d07bba919 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enhance makedist script
2019-05-18 02:07:04 +02:00
Peter Kokot 0a7d71b593 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rename *.l files to *.re
2019-05-17 23:54:12 +02:00
Peter Kokot 31faa4df73 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move copyright/license headers to CONTRIBUTING.md
2019-05-17 23:45:26 +02:00
Peter Kokot 739cb44bae Merge branch 'PHP-7.4'
* PHP-7.4:
  Add enchant pkg-config notice in UPGRADING
  Use PKG_CHECK_MODULES to detect the Enchant library
2019-05-17 19:39:31 +02:00
Peter Kokot fee9e43892 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use *.data for tests data files
2019-05-17 19:05:16 +02:00
Christoph M. Becker 4b7c2de141 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78025: segfault when accessing properties of DOMDocumentType
2019-05-17 13:33:23 +02:00
Peter Kokot 54e7acddf9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use *.data for fixture files
2019-05-17 04:00:04 +02:00
Peter Kokot 6ca8e06f82 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update UPGRADING about LiteSpeed
  Rename configure --with-litespeed to --enable-litespeed
2019-05-17 03:18:13 +02:00
Bob Weinand af12aa8124 Merge branch 'concatenation_precedence' 2019-05-16 18:39:48 +02:00
Bob Weinand 1ffa4d25aa Merge branch 'PHP-7.4' 2019-05-16 18:37:05 +02:00
Peter Kokot 8aae33de38 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rename *.tif to *.tiff for consistency
2019-05-16 07:43:52 +02:00
Nikita Popov 6b15163369 Merge branch 'PHP-7.4' 2019-05-15 14:36:53 +02:00
Nikita Popov 5063a7085c Merge branch 'PHP-7.4' 2019-05-15 12:49:50 +02:00
Christoph M. Becker 63761822bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS regarding re-tagging 7.3.6RC1
2019-05-15 11:33:15 +02:00
Dmitry Stogov 139da4b271 Merge branch 'PHP-7.4'
* PHP-7.4:
  Removed ability to compile PHP without EX(run_time_cache). ZEND_EX_USE_RUN_TIME_CACHE was always defined.
2019-05-15 11:07:51 +03:00
Sara Golemon a522fae382 Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump for 7.2.20
2019-05-14 20:24:01 -04:00
Peter Kokot a1de3e8ae0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelogs
  Fix bug #62397 - disable_functions does not work with eval.
2019-05-15 00:00:14 +02:00
Peter Kokot e04c41f882 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rename *.dat to *.data for common file type
2019-05-14 23:33:31 +02:00
Peter Kokot 4251600203 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enhance the tokenizer data generator script
2019-05-14 21:51:51 +02:00
Nikita Popov f009d6e7c3 Merge branch 'PHP-7.4' 2019-05-14 15:04:39 +02:00
Nikita Popov 20e983d9ce Merge branch 'PHP-7.4' 2019-05-14 14:59:36 +02:00
Dmitry Stogov 4d8e0d493a Merge branch 'PHP-7.4'
* PHP-7.4:
  Moved NEWS entry
  Fixed possible crashes, because of inconsistent PCRE cache and opcache SHM reset
2019-05-14 15:09:30 +03:00
Christoph M. Becker f0eb642cb0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent further potential test conflicts
2019-05-14 13:20:38 +02:00
Christoph M. Becker 5b7575ebe2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prepare 7.3.7-dev
2019-05-14 11:46:06 +02:00
Christoph M. Becker 4a73a27636 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test case
2019-05-14 10:26:25 +02:00
Christoph M. Becker 9922000dd1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent test conflicts
2019-05-14 10:12:11 +02:00
Peter Kokot 7bdb4c82a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelog
  Use pkg-config for sqlite3 and pdo_sqlite
2019-05-14 03:20:11 +02:00
Peter Kokot 231d132f25 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add extensions naming conventions to ext_skel.php
2019-05-14 03:05:01 +02:00
Peter Kokot f5194540f1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Convert CRLF to LF
2019-05-14 02:59:16 +02:00
Dmitry Stogov d58cc9c9e5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed test on platforms that don't support fastcall calling convention
2019-05-14 00:22:21 +03:00
Peter Kokot f47ddb56c7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove example file for pgsql extension
2019-05-13 22:15:52 +02:00
Jakub Zelenka e75aa7ed21 Merge branch 'PHP-7.4' 2019-05-13 18:52:17 +01:00
Nikita Popov f106f57164 Merge branch 'PHP-7.4' 2019-05-13 14:43:10 +02:00
Dmitry Stogov 6b691cd44e Merge branch 'PHP-7.4'
* PHP-7.4:
  Check for supported libffi ABI
2019-05-13 15:16:28 +03:00
Christoph M. Becker 6d9ca44851 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78003: strip_tags output change since PHP 7.3
2019-05-13 13:11:40 +02:00
Dmitry Stogov fd4e2e77dc Merge branch 'PHP-7.4'
* PHP-7.4:
  ARM64 may be big endian
2019-05-13 13:34:07 +03:00
Dmitry Stogov 8f4f5fc040 Merge branch 'PHP-7.4'
* PHP-7.4:
  Load 8 bytes at a time in hash_func. (Sebastian Pop)
2019-05-13 12:36:49 +03:00
Nikita Popov 451eb4464a Merge branch 'PHP-7.4' 2019-05-13 11:06:44 +02:00
Nikita Popov 12b03a8750 Merge branch 'PHP-7.4' 2019-05-13 10:52:00 +02:00
Christoph M. Becker 248a8987ea Merge branch 'PHP-7.4'
* PHP-7.4:
  Deprecate and ignore $version parameter of curl_version()
2019-05-13 08:54:22 +02:00
Peter Kokot 64923adccf Merge branch 'PHP-7.4'
* PHP-7.4:
  Convert CRLF to LF
2019-05-13 03:54:10 +02:00
Peter Kokot 406437eadb Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Remove outdated fastcgi info in favor of the manual
2019-05-13 02:58:52 +02:00
Peter Kokot 229c7ad6e4 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Refactor libgd docs
2019-05-12 23:55:18 +02:00
Peter Kokot 5827aca5f1 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Migrate intl error conventions docs to Markdown
2019-05-12 23:24:08 +02:00
Peter Kokot 045e247ea2 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Migrate oci8 README to Markdown
2019-05-12 22:09:20 +02:00
Peter Kokot 87cfcb0b7c Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Migrate tests READMEs to Markdown
2019-05-12 22:03:35 +02:00
Peter Kokot 86825a43e3 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Migrate libxmlrpc README to Markdown
2019-05-12 21:08:38 +02:00
Peter Kokot 2cf90bb2f0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Normalize comments in *nix build system m4 files
2019-05-12 18:51:50 +02:00
Peter Kokot 3005d6c21d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typos in upgrade notes
2019-05-12 17:37:04 +02:00
Christoph M. Becker 3d7f2fcdff Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent race conditions
2019-05-12 17:17:52 +02:00
Peter Kokot ca22b24711 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused variable
2019-05-12 03:24:43 +02:00
Peter Kokot b60173af0b Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicate variables
2019-05-12 03:06:19 +02:00
Peter Kokot 4dedf28380 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use PKG_CHECK_MODULES to detect the iODBC library
2019-05-12 01:37:00 +02:00
Peter Kokot 628806c382 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use PKG_CHECK_MODULES to detect the systemd library
2019-05-12 00:19:20 +02:00
Jakub Zelenka 4b2239b52b Merge branch 'PHP-7.4' 2019-05-11 20:10:43 +01:00
Peter Kokot d40a3f4c28 Merge branch 'PHP-7.4'
* PHP-7.4:
  Using PDO instead because of consistency
2019-05-11 21:06:22 +02:00
Peter Kokot f1d9605970 Merge branch 'PHP-7.4'
* PHP-7.4:
  list interfaces/adding just "binary" state status.
2019-05-11 20:29:36 +02:00
Peter Kokot 64b98c0e33 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead DEBUG_CFLAGS setting
2019-05-11 19:53:20 +02:00
Peter Kokot 3e86050726 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused symbol definition
  Remove redundant memory.h file
2019-05-11 19:48:13 +02:00
Peter Kokot f45a3a7847 Merge branch 'PHP-7.4'
* PHP-7.4:
  Simplify ext/mbstring/libmbfl/config.h creation
2019-05-11 19:45:00 +02:00
Peter Kokot 5ba4e55324 Merge branch 'PHP-7.4'
* PHP-7.4:
  Integrate libmbfl docs to README.md and LICENSE
2019-05-11 18:35:38 +02:00
Peter Kokot 5b4514dee8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Convert CRLF to LF in *.wsdl files
2019-05-11 17:17:40 +02:00
Peter Kokot 4b595655eb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix comment to match the future zts configuration option
2019-05-11 15:03:27 +02:00
Peter Kokot d3924071c3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove ffi README in favour of docs
2019-05-11 14:51:40 +02:00
Christoph M. Becker ac0e0c9a90 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent race condition
2019-05-11 09:53:07 +02:00
Peter Kokot 9604e2f28f Merge branch 'PHP-7.4'
* PHP-7.4:
  Rename *.jpeg files to *.jpg
2019-05-11 03:28:11 +02:00
Peter Kokot 3539a902dc Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump config.guess and config.sub
2019-05-11 00:25:31 +02:00
Peter Kokot a3c88135d4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused variables
2019-05-10 22:58:29 +02:00
Christoph M. Becker a8a391a2f2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
  NEWS and UPGRADING for the scatter filter
2019-05-10 18:46:50 +02:00
Kalle Sommer Nielsen 7c92eb734f Merge branch 'master' of git.php.net:/php-src 2019-05-10 02:38:38 +03:00
Kalle Sommer Nielsen 569e338104 Merge branch 'PHP-7.4'
* PHP-7.4:
  Implemented the gdScatter filter I wrote almost 10 years ago
2019-05-10 02:24:01 +03:00
Peter Kokot 08e7e6ffe6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused variable
2019-05-10 01:05:24 +02:00
Peter Kokot 1e0a4ac10e Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead code from configure.ac
2019-05-10 00:44:51 +02:00
Peter Kokot c90ea769fd Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable checking for library in ext skeleton
2019-05-10 00:21:39 +02:00
Peter Kokot 071acf7b84 Disable checking for library in the ext skeleton 2019-05-10 00:17:54 +02:00
George Wang 487ffb45d2 Merge branch 'PHP-7.4' 2019-05-09 18:16:09 -04:00
Peter Kokot 34bc920382 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused functions
2019-05-09 19:07:39 +02:00
Christoph M. Becker bcefc345bd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix erroneous assertions
2019-05-09 16:57:23 +02:00
Nikita Popov 167d4bdb62 Merge branch 'PHP-7.4' 2019-05-09 16:05:58 +02:00
Nikita Popov b8c2b43778 Merge branch 'PHP-7.4' 2019-05-09 14:35:25 +02:00
Nikita Popov 9f87831470 Merge branch 'PHP-7.4' 2019-05-09 12:36:33 +02:00
Christoph M. Becker 206a3e96a6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix log_verbosity_bug.phpt
2019-05-09 12:16:48 +02:00
Nikita Popov 969f238808 Merge branch 'PHP-7.4' 2019-05-09 12:03:29 +02:00
Peter Kokot a7bd736c2c Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused functions
2019-05-08 22:02:49 +02:00
Peter Kokot cae7f4add1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove redundant example/test libsodium.php file
2019-05-08 22:00:30 +02:00
Peter Kokot 7554d85eac Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused example/test fileinfo.php script
2019-05-08 21:59:02 +02:00
Peter Kokot ab60bf6dc3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove example PHP script from FFI
2019-05-08 21:56:10 +02:00
Peter Kokot 02fe866086 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove vcsclean script
2019-05-08 21:51:35 +02:00
Christoph M. Becker 0dbb0445aa Merge branch 'PHP-7.4'
* PHP-7.4:
  Add {TMP} placeholder for PHPT INI sections
2019-05-08 19:26:30 +02:00
Nikita Popov be31a9468d Merge branch 'PHP-7.4' 2019-05-08 17:06:34 +02:00
Dmitry Stogov 370f4e4c6f Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve PHP hash function. See Daniel Lemire's blog post https://lemire.me/blog/2016/07/21/accelerating-php-hashing-by-unoptimizing-it/
2019-05-08 16:48:42 +03:00
Nikita Popov 230d3089b3 Merge branch 'PHP-7.4' 2019-05-08 15:44:29 +02:00
Nikita Popov 6ada4db002 Merge branch 'PHP-7.4' 2019-05-08 12:13:11 +02:00
Nikita Popov 11655d0974 Merge branch 'PHP-7.4' 2019-05-08 11:51:50 +02:00
Nikita Popov 97cce70e55 Merge branch 'PHP-7.4' 2019-05-08 11:38:10 +02:00
Christoph M. Becker 7647f5401c Merge branch 'PHP-7.4'
* PHP-7.4:
  Deprecate CURLPIPE_HTTP1
2019-05-07 17:05:51 +02:00
Nikita Popov fc1e6b3923 Merge branch 'PHP-7.4' 2019-05-07 16:22:17 +02:00
Nikita Popov 9702e2332f Merge branch 'PHP-7.4' 2019-05-07 15:44:39 +02:00
Dmitry Stogov 40b2ffe201 Merge branch 'PHP-7.4'
* PHP-7.4:
  speed up increment and decrement operators with overflow detection
2019-05-07 15:42:25 +03:00
Dmitry Stogov b27f97d858 Merge branch 'PHP-7.4'
* PHP-7.4:
  speed up add and sub operators with overflow detection
2019-05-07 15:38:27 +03:00
Nikita Popov 2a2f6a9e74 Merge branch 'PHP-7.4' 2019-05-07 14:30:20 +02:00
Nikita Popov 3619cc78a8 Merge branch 'PHP-7.4' 2019-05-07 14:07:30 +02:00
Nikita Popov fd2db11929 Always generate fatal error for LSP failures
RFC: https://wiki.php.net/rfc/lsp_errors
2019-05-07 13:45:28 +02:00
Nikita Popov 49c4ab3c39 Merge branch 'PHP-7.4' 2019-05-07 10:41:31 +02:00
Peter Kokot 91a91c6c8b Merge branch 'PHP-7.4'
* PHP-7.4:
  Convert CRLF line endings to LF
  Convert CRLF line endings to LF
2019-05-07 04:40:23 +02:00
Peter Kokot e0aea5539b Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove empty section
2019-05-07 04:26:09 +02:00
Peter Kokot 206476f7df Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Add password registry RFC to changelog
2019-05-07 02:23:07 +02:00
Peter Kokot 9f26162ae4 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Rename libbcmath license file to LICENSE
2019-05-07 01:10:05 +02:00
Peter Kokot 5d829dd0ce Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Move OpenLDAP license to redistributable info file
2019-05-06 23:04:19 +02:00
Dmitry Stogov 66a1d821d3 Improved code for unordered comparison 2019-05-06 16:07:48 +03:00
Dmitry Stogov 17a43fe2a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix double incremenation in ffi
2019-05-06 09:45:23 +03:00
Peter Kokot 49a0792d64 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rename uppercase JPG file to lowercase jpg
2019-05-06 05:21:00 +02:00
Peter Kokot 4409368467 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Move wddx to dedicated section
2019-05-06 00:58:28 +02:00
Peter Kokot c9fa674d51 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove phpextdist
2019-05-06 00:15:43 +02:00
Peter Kokot f4b4a47e7f Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicate test file
2019-05-06 00:11:59 +02:00
Peter Kokot 46bcabeb05 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicate getimagesize_variation_003 test
2019-05-05 23:55:23 +02:00
Jakub Zelenka 187872503a Merge branch 'PHP-7.4' 2019-05-05 21:06:58 +01:00
Christoph M. Becker 848ce03347 Merge branch 'PHP-7.4'
* PHP-7.4:
  Properly initialize variable
2019-05-05 17:50:15 +02:00
Christoph M. Becker af8dc55601 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
2019-05-05 15:41:05 +02:00
Christoph M. Becker 679d0402ab Merge branch 'PHP-7.4'
* PHP-7.4:
  Re-add common PDO tests to Firebird test suite
2019-05-04 14:25:06 +02:00
Christoph M. Becker 14d48a58a1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix memory leak exhibited by bug_aaa.phpt
2019-05-04 14:20:59 +02:00
Peter Kokot 4e88112adb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix undefined variable, and remove unused test-pdo
2019-05-03 18:14:53 +02:00
Peter Kokot 371fe42680 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update `NEWS` with changes made at #4093
2019-05-03 17:34:22 +02:00
Christoph M. Becker 90c6a6a939 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix comment
2019-05-03 16:51:14 +02:00
Christoph M. Becker c53236464e Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS
2019-05-03 16:49:27 +02:00
Kalle Sommer Nielsen c265652879 Merge branch 'PHP-7.4'
* PHP-7.4:
  Include the request method in CLI server logs
2019-05-02 23:32:43 +03:00
Kalle Sommer Nielsen a178627fa5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove test-pcntl script
2019-05-02 23:26:03 +03:00
Kalle Sommer Nielsen 6b43f56094 Merge branch 'PHP-7.4'
* PHP-7.4:
  PDO_Firebird test update, round 2
2019-05-02 23:20:20 +03:00
Kalle Sommer Nielsen 18fbdc74fb Merge branch 'PHP-7.4'
* PHP-7.4:
  Rewrite PDO_Firebird tests to not depend on ext/interbase
2019-05-02 21:48:41 +03:00
Nikita Popov f89adfe72c Merge branch 'PHP-7.4' 2019-05-02 15:13:30 +02:00
Nikita Popov 79f41944ba Merge branch 'PHP-7.4' 2019-05-02 15:07:04 +02:00
Christoph M. Becker fe9165449d Don't try to disable the already removed ext/interbase
Otherwise we break the build.
2019-05-01 23:56:48 +02:00
Kalle Sommer Nielsen 4218466111 Okay, too quick to merge, these are only relevant to 7.4 2019-05-01 23:48:05 +03:00
Kalle Sommer Nielsen c71e35ea91 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove some more interbase leftovers
  Fix typo
  NEWS for ext/interbase unbundling
2019-05-01 23:45:24 +03:00
Kalle Sommer Nielsen 26c96f9e8d Remove this leftover 2019-05-01 23:30:25 +03:00
Kalle Sommer Nielsen c280b0ac4c Merge branch 'PHP-7.4'
* PHP-7.4:
  Move ext/interbase to pecl/database/interbase
2019-05-01 23:28:25 +03:00
Dmitry Stogov fc42ac2d78 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use ZEND_HASH_FOREACH with direct callback, instead of callbacks
2019-04-30 14:50:38 +03:00
Christoph M. Becker d2c86e60e3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS wrt. sec fixes
2019-04-30 09:37:22 +02:00
Christoph M. Becker bb3f261839 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix typo
2019-04-30 09:18:48 +02:00
Stanislav Malyshev bc8822361a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77950 - Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG
2019-04-30 00:06:15 -07:00
Stanislav Malyshev 97c728116c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77821: Potential heap corruption in TSendMail()
2019-04-29 22:10:21 -07:00
Dmitry Stogov 3d2a6d9bed Merge branch 'PHP-7.4'
* PHP-7.4:
  Also, use ZEND_ACC_PRELOADED for classes
2019-04-30 02:22:58 +03:00
Dmitry Stogov faf24142f3 Fixed JIT for preloaded functions and classes 2019-04-30 00:23:57 +03:00
Peter Kokot 465c82b1af Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove TSRM configuration header
2019-04-29 22:35:24 +02:00
Christoph M. Becker b6afae851c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77943: imageantialias($image, false); does not work
2019-04-29 17:24:48 +02:00
Christoph M. Becker 43da42c3e2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add tests for bug77943
2019-04-29 16:30:22 +02:00
Christoph M. Becker f70a89318e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77943: imageantialias($image, false); does not work
2019-04-29 16:19:21 +02:00
Nikita Popov 0d8eb57980 Merge branch 'PHP-7.4' 2019-04-29 14:18:07 +02:00
Nikita Popov e175c4d865 Merge branch 'PHP-7.4' 2019-04-29 13:54:04 +02:00
Christoph M. Becker b51b8a94f4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Properly initialize out parameter
2019-04-29 12:18:11 +02:00
Markus Staab 1db95f8e46 fixed typo 2019-04-29 11:07:22 +02:00
Nikita Popov 6e1d899d3d Merge branch 'PHP-7.4' 2019-04-29 10:23:46 +02:00
Christoph M. Becker d09d3e28df Merge branch 'PHP-7.4'
* PHP-7.4:
  Extend CURLFile to support streams
2019-04-29 10:21:44 +02:00
Nikita Popov cdb7ebd972 Merge branch 'PHP-7.4' 2019-04-29 09:58:56 +02:00
Christoph M. Becker 9bb6e0bffc Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix tests
2019-04-29 09:07:45 +02:00
Peter Kokot c828297c71 Merge branch 'PHP-7.4'
* PHP-7.4:
  Simplify checking of *nix build tools
2019-04-29 01:35:49 +02:00
Peter Kokot cabd8c12d4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused TSRM/readdir.h header
2019-04-29 00:55:59 +02:00
Christoph M. Becker ba90675f82 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make MySQLPDOTest::extractVersion() more liberal
2019-04-28 23:51:15 +02:00
Peter Kokot 17c276a1db Merge branch 'PHP-7.4'
* PHP-7.4:
  Enhance the buildconf force option
2019-04-28 21:19:30 +02:00
Peter Kokot 9e682ec0be Merge branch 'PHP-7.4'
* PHP-7.4:
  Automatically remove aclocal.m4 if present
2019-04-28 21:05:58 +02:00
Jakub Zelenka 5b7acc64eb Merge branch 'PHP-7.4' 2019-04-28 18:51:36 +01:00
Peter Kokot 8f71468ea0 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Remove outdated and redundant Apache README
2019-04-28 02:30:20 +02:00
Peter Kokot aa1e3af43f Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Update NEWS
  Fix #77024: SplFileObject::__toString() may return array
2019-04-28 00:51:53 +02:00
Peter Kokot 39caedac3e Merge branch 'PHP-7.4'
* PHP-7.4:
  Little detection change proposal.
2019-04-27 21:18:47 +02:00
Christoph M. Becker 033b8d6b40 Merge branch 'PHP-7.4'
* PHP-7.4:
  PHP, meet MySQL
2019-04-27 19:22:56 +02:00
Christoph M. Becker 9396535033 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77944: Wrong meta pdo_type for bigint on LLP64
2019-04-27 18:48:39 +02:00
Nikita Popov 8047cf9ba4 Merge branch 'PHP-7.4' 2019-04-26 15:05:56 +02:00
Nikita Popov 4c485586b4 Merge branch 'PHP-7.4' 2019-04-26 09:57:52 +02:00
Christoph M. Becker 0e2ff0dd94 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix VirtualProtect() related Phar issues
2019-04-26 09:09:35 +02:00
Christoph M. Becker 6bfb59b51c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77940: test using outdated mon_thousands_sep for Swedish
2019-04-25 23:29:42 +02:00
Christoph M. Becker 7db0fa023b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77940: test using outdated mon_thousands_sep for Swedish
2019-04-25 19:41:01 +02:00
Christoph M. Becker a777322f16 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77940: test using outdated mon_thousands_sep for Swedish
2019-04-25 09:00:02 +02:00
Christoph M. Becker 297be5adc0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77938: socket_get_option error
2019-04-25 00:08:05 +02:00
Dmitry Stogov 395dd416aa Merge branch 'PHP-7.4'
* PHP-7.4:
  Use better macros
2019-04-24 22:28:05 +03:00
Dmitry Stogov a6e0df9a92 Merge branch 'PHP-7.4'
* PHP-7.4:
  settype() optimization
2019-04-24 22:24:05 +03:00
Christoph M. Becker 7502df133c Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove html_errors from INI Quick Reference as INI values are identical to Engine values
2019-04-24 19:22:11 +02:00
Dmitry Stogov fa0968a211 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use ZEND_TRY_ASSIGN_REF_... macros for arguments passed to internal function by reference
2019-04-24 18:28:40 +03:00
Dmitry Stogov 2e4686b566 Use ZEND_TRY_ASSIGN_REF_... macros for arguments passed to internal function by reference 2019-04-24 18:16:47 +03:00
Dmitry Stogov 34db07567d Use ZEND_TRA_ASSIGN_REF_... macros for by reference arguments of internal functions. 2019-04-24 16:14:48 +03:00
David Carlier 3a2cc1614a JIT profiling other BSD build fixes 2019-04-24 14:52:50 +02:00
Remi Collet bb9d0ad0e5 Merge branch 'PHP-7.4'
* PHP-7.4:
  news entry for litespeed
2019-04-24 09:46:36 +02:00
Dmitry Stogov dd7cbadc02 Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimize constant SWITCH_LONG and SWITCH_STRING
2019-04-24 00:09:12 +03:00
Dmitry Stogov 26353a2640 Fixed test (Warning -> Exception) 2019-04-23 22:44:30 +03:00
Dmitry Stogov 16e0fe0baa Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't eliminate BIND_STATIC if it may cause undefined constant warning
2019-04-23 22:40:11 +03:00
Peter Kokot d2e6c1aff1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move Autoconf Archive macros to a common m4 dir
2019-04-23 20:38:57 +02:00
Peter Kokot 028ffddf69 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move acinclude.m4 to build/php.m4
2019-04-23 20:32:03 +02:00
Peter Kokot fe54a66720 Merge branch 'PHP-7.4'
* PHP-7.4:
  Simplify libxmlrpc bundling and building
2019-04-23 20:18:38 +02:00
Dmitry Stogov 4c25fc5479 Implemented JIT for SWITCH_LONG/SWITCH_STRING 2019-04-23 17:40:10 +03:00
Nikita Popov 3a8304c35a Merge branch 'PHP-7.4' 2019-04-23 13:15:09 +02:00
Nikita Popov 7208826fde Merge branch 'PHP-7.4' 2019-04-23 12:44:26 +02:00
Nikita Popov 15c0135d5b Merge branch 'PHP-7.4' 2019-04-23 11:40:56 +02:00
Peter Kokot fea3b011bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove php.gif from the project root directory
2019-04-23 08:59:55 +02:00
Peter Kokot bedfb33dfb Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Remove CLI sapi README
2019-04-23 08:52:30 +02:00
Peter Kokot e95a372f82 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove sinclude from tsrm.m4
2019-04-23 08:28:53 +02:00
Dmitry Stogov 35b7dd11fd Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused BIND_STATIC insructions
2019-04-23 02:21:45 +03:00
Dmitry Stogov 74153193c6 Use _zend_hash_find_known_hash() for IS_CONST operand 2019-04-22 21:07:05 +03:00
Dmitry Stogov 499b25c303 Fixed JIT for DEFINED opcode 2019-04-22 20:19:34 +03:00
Christoph M. Becker 6405607459 Merge branch 'PHP-7.4'
* PHP-7.4:
  Merge link.c and link_win32.c
2019-04-22 13:54:23 +02:00
Dmitry Stogov 4d7df449d0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add gcc global register for aarch64
2019-04-22 14:29:58 +03:00
Christoph M. Becker b8e0f506b5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix parameter order
2019-04-22 12:39:12 +02:00
Nikita Popov e311f2a320 Fix flag value clash affecting defined() function 2019-04-22 12:01:04 +02:00
Dmitry Stogov 4846413289 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed wrong opline
2019-04-22 11:06:27 +03:00
George Wang 39a249d12a Merge branch 'PHP-7.4' 2019-04-21 16:00:07 -04:00
Peter Kokot 7eb8913e04 Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor Zend/acinclude.m4 local macro
2019-04-21 15:53:44 +02:00
Peter Kokot cbca8a8df4 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Fix CS in Markdown files
2019-04-21 15:39:22 +02:00
Peter Kokot 4767c412b0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Updated visual text elements using markdown
2019-04-21 11:06:57 +02:00
Peter Kokot 04890aa399 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Fix logo location
2019-04-21 03:16:17 +02:00
Peter Kokot 04c13d4857 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Fix typo
2019-04-20 22:55:42 +02:00
Peter Kokot d35234fe91 Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor docs files for bcmath library
  Move ucgendata README to generator file header
2019-04-20 22:41:31 +02:00
Peter Kokot 0ccb909363 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove zend.ico
2019-04-20 22:24:01 +02:00
Peter Kokot 9872b6369f Merge branch 'PHP-7.4'
* PHP-7.4:
  Added test for imagecolorclosesthwb
2019-04-20 19:32:02 +02:00
Peter Kokot 01cdae054b Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for date timestamp
2019-04-20 19:21:22 +02:00
Peter Kokot 2cf6187b77 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelog
  Update changelog
  Fix #77921: static.php.net doesn't work anymore
2019-04-20 19:13:35 +02:00
Peter Kokot 3478dc5e28 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update changelogs
  Remove PHP_SETUP_KERBEROS m4 macro
2019-04-20 16:16:25 +02:00
Peter Kokot b1d8714fb2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77011
2019-04-20 15:22:23 +02:00
Peter Kokot cf84bbf606 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use PKG_CHECK_MODULES to detect the kerberos libraries
2019-04-20 15:18:14 +02:00
Peter Kokot e869e2c807 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update Git repository for Windows build tool kit
2019-04-19 21:11:39 +02:00
Gabriel Caruso f13ad7836c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in comments
2019-04-19 13:12:21 -03:00
Kalle Sommer Nielsen 59f4490689 Remove HAVE_PCRE, as ext/pcre is always available 2019-04-19 15:18:31 +03:00
Dmitry Stogov e04fbdab2f Keep EX(opline) in consistency when call engine and helper functions 2019-04-18 22:19:57 +03:00
Christoph M. Becker 5e482c72f9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use php-sdk-2.2.0beta5 on AppVeyor
2019-04-18 16:52:31 +02:00
Nikita Popov 648cc80987 Merge branch 'PHP-7.4' 2019-04-18 15:40:39 +02:00
Nikita Popov 32e5f8da4e Merge branch 'PHP-7.4' 2019-04-18 13:50:28 +02:00
Dmitry Stogov 59d1360caa Merge branch 'PHP-7.4'
* PHP-7.4:
  Check assert only when RC_DEBUG is enabled
2019-04-18 14:27:18 +03:00
Nikita Popov d9ec9a919c Merge branch 'PHP-7.4' 2019-04-18 13:08:27 +02:00
Nikita Popov 2b7dd211a9 Merge branch 'PHP-7.4' 2019-04-18 12:59:12 +02:00
Nikita Popov 3c44e29cfd Merge branch 'PHP-7.4' 2019-04-18 12:34:21 +02:00
Nikita Popov 358b81fc0e Merge branch 'PHP-7.4' 2019-04-18 12:14:54 +02:00
Nikita Popov 878e09c47c Merge branch 'PHP-7.4' 2019-04-18 12:10:21 +02:00
Dmitry Stogov 28828ffccb Fixed JIT for recursive functions with type-hints 2019-04-18 12:32:31 +03:00
Nikita Popov 492a5d3ebe Merge branch 'PHP-7.4' 2019-04-18 10:11:51 +02:00
Dmitry Stogov c78fc4971e Fixed access to uninitialized vaiable. 2019-04-18 10:48:04 +03:00
Dmitry Stogov 35ee6dc69f Don't initialize return value before calling user functions 2019-04-18 03:00:20 +03:00
Dmitry Stogov f1767e23f4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't initialize return value before calling user functions
2019-04-18 02:32:06 +03:00
Dmitry Stogov f9dbfcd6fa Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed compatibility with phpdbg
2019-04-18 01:34:13 +03:00
Peter Kokot e564a13a5f Merge branch 'PHP-7.4'
* PHP-7.4:
  Join build makefiles together
2019-04-17 21:56:05 +02:00
Dmitry Stogov eeb0842e97 Merge branch 'PHP-7.4'
* PHP-7.4:
  It's safe to keep old string if it's stored not in SHM.
2019-04-17 22:09:07 +03:00
Dmitry Stogov 2de2cb2a87 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed dl() function. It failed in DEBUG build without opcache because of assert during string interning.
2019-04-17 19:32:46 +03:00
Christoph M. Becker 034babbcc1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77911: Wrong warning for session.sid_bits_per_character
2019-04-17 17:25:13 +02:00
Nikita Popov f9e918b17d Merge branch 'PHP-7.4' 2019-04-17 14:25:34 +02:00
Nikita Popov 1d53d6df7e Merge branch 'PHP-7.4' 2019-04-17 14:06:05 +02:00
Dmitry Stogov 70f03416f5 Fixed test 2019-04-17 12:21:19 +03:00
Dmitry Stogov bf61ec6b7e Merge branch 'PHP-7.4'
* PHP-7.4:
  Eliminate FETCH $GLOBALS followed by FETCH_DIM/UNSET_DIM/ISSET_ISEMPTY_DIM
2019-04-17 11:53:09 +03:00
Gabriel Caruso 09d1a17ad3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
2019-04-17 05:48:16 -03:00
Derick Rethans b896819b99 Merge branch 'PHP-7.4' 2019-04-17 09:40:35 +01:00
Christoph M. Becker 263b0cf71b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix tests for non English environments
2019-04-17 09:58:40 +02:00
Dmitry Stogov 176100499a Fixed compilation 2019-04-16 22:22:34 +03:00
Peter Kokot e1f0292f23 Merge branch 'PHP-7.4'
* PHP-7.4:
  Simplify generated_lists generation
2019-04-16 17:25:43 +02:00
Peter Kokot 23804f0c91 Merge branch 'PHP-7.4'
* PHP-7.4:
  ext/pcre/config0.m4: add ac_cv_have_pcre2_jit variable
2019-04-16 17:16:57 +02:00
Remi Collet 55d7a8381c Merge branch 'PHP-7.4'
* PHP-7.4:
  next is 7.2.19
2019-04-16 13:13:05 +02:00
Dmitry Stogov f603f5c63c Improved support for "context threading" (not enabled).
This technique uses CPU Register Address Stack for return branch predicion and give 25% improvement on some call intensive micro-becnhmarks. Unfotrunately, it also slow downs other recursive benchmarks (probably because of RAS size). The techniquea is not compatible with VM without register variables.
2019-04-16 13:33:01 +03:00
Nikita Popov 39724f4645 Merge branch 'PHP-7.4' 2019-04-16 12:21:48 +02:00
Christoph M. Becker 7096ed9f26 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prepare main branch for PHP 7.3.6
2019-04-16 11:57:30 +02:00
Nikita Popov 772a158d7a Merge branch 'PHP-7.4' 2019-04-16 10:40:01 +02:00
Christoph M. Becker 9e62ba1533 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use curl_mime_*() functions if available
2019-04-16 08:44:19 +02:00
Dmitry Stogov 9951cf73c4 Merge branch 'PHP-7.4'
* PHP-7.4:
2019-04-16 00:09:52 +03:00
Dmitry Stogov ba12a1bea9 Merge branch 'PHP-7.4'
* PHP-7.4:
  execute_data->return_value is not used for internal functions
2019-04-16 00:09:08 +03:00
Peter Kokot 7d99c32f93 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove not needed extension generated files gitignores
2019-04-15 20:07:37 +02:00
Nikita Popov ed0c80f1bf Merge branch 'PHP-7.4' 2019-04-15 15:58:14 +02:00
David Carlier e1e63b89f4 Both readlink args should not point to the same buffer 2019-04-15 15:55:00 +02:00
Nikita Popov daa78d7749 Merge branch 'PHP-7.4' 2019-04-15 15:28:07 +02:00
Nikita Popov 61a6a6ec51 Merge branch 'PHP-7.4' 2019-04-15 15:01:03 +02:00
Nikita Popov 60b724cbda Merge branch 'PHP-7.4' 2019-04-15 14:34:32 +02:00
Nikita Popov b8e5c07183 Merge branch 'PHP-7.4' 2019-04-15 13:22:00 +02:00
Dmitry Stogov 150c5e04e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Removed tests that always (or almost always) true
2019-04-15 13:19:39 +03:00
Nikita Popov 49b97af431 Suppress some maybe uninit warnings in jit 2019-04-15 11:47:10 +02:00
Nikita Popov dc42e403a2 Merge branch 'PHP-7.4' 2019-04-15 11:42:55 +02:00
Nikita Popov a3dc083c81 Merge branch 'PHP-7.4' 2019-04-15 10:54:46 +02:00
Nikita Popov 2e186aa9dc Merge branch 'PHP-7.4' 2019-04-15 10:25:27 +02:00
Côme Chilliet 9d38510ab4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Updated NEWS
  Fix a NULL dereferencing crash in php-ldap
2019-04-15 10:21:27 +02:00
Nikita Popov 426f99126e Merge branch 'PHP-7.4' 2019-04-15 10:05:25 +02:00
Nikita Popov fe256e6961 Merge branch 'PHP-7.4' 2019-04-15 09:48:57 +02:00
Gabriel Caruso 12446aafce Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_* for always available extensions
2019-04-14 11:51:39 -03:00
Peter Kokot a3c6a2a132 Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable PACKAGE_* preprocessor symbols
2019-04-13 07:01:11 +02:00
Peter Kokot 57cfd706e4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove PHP_READDIR_R_TYPE
2019-04-13 04:51:03 +02:00
George Wang 5fe7b805ba Merge branch 'PHP-7.4' 2019-04-12 17:48:39 -04:00
Nikita Popov f2fd51cb80 Merge branch 'PHP-7.4' 2019-04-12 17:05:07 +02:00
Nikita Popov ee73f5b191 Merge branch 'PHP-7.4' 2019-04-12 15:12:47 +02:00
Nikita Popov 1b41961636 Remove dubious memcmp optimization in iconv
This violates strict aliasing, and appears entirely unnecessary --
the compiler can optimize fixed size memcmp's by itself.
2019-04-12 15:12:45 +02:00
Nikita Popov 41c4816157 Avoid uninit warnin in http_fopen_wrapper
This one looks semi-legit, in case php_stream_eof() returns false
but php_stream_get_line() fails. Not totally sure this cannot
happen, so rewriting to check both conditions at once.
2019-04-12 15:12:45 +02:00
Nikita Popov 176fe4b679 Avoid uninit warning in dtoa
This code is extremely convoluted, I have no idea whether or not
this one is legitimate. Suppressing with explicit initialization.
2019-04-12 15:12:45 +02:00
Nikita Popov 3fab73e24e Avoid misc uninitialized variable warnings 2019-04-12 15:12:45 +02:00
Nikita Popov bbeec4c20f Avoid uninitialized variable warnings in gmp 2019-04-12 15:12:45 +02:00
Nikita Popov 2f97bb6cfc Add test for get_cfg_var with array variable
And fix incorrect variable shadowing in add_config_entry(). However,
the test doesn't hit this case, as it requires a nested array. I'm
not sure if it's possible to produce nested arrays from ini?
2019-04-12 15:12:45 +02:00
Nikita Popov a830682a9a Avoid unitialized variable warning in soap
Extract envelope fetch into separate function, so the control
flow becomes more obvious.
2019-04-12 15:12:45 +02:00
Christoph M. Becker 47602eb624 Merge branch 'PHP-7.4'
* PHP-7.4:
  Include libpq-fs.h on Windows, too
2019-04-12 14:12:33 +02:00
Christoph M. Becker 015c7a1dd3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix tests wrt. internationalization
2019-04-12 13:09:11 +02:00
Nikita Popov 5caa52476c Merge branch 'PHP-7.4' 2019-04-12 12:51:42 +02:00
Nikita Popov 785f034e41 Merge branch 'PHP-7.4' 2019-04-12 12:04:11 +02:00
Nikita Popov b8b00263c5 Merge branch 'PHP-7.4' 2019-04-12 10:37:27 +02:00
Nikita Popov 2370d56334 Merge branch 'PHP-7.4' 2019-04-12 10:06:14 +02:00
Nikita Popov d4c69b2633 Merge branch 'PHP-7.4' 2019-04-12 09:57:16 +02:00
Dmitry Stogov 4190b95d11 Merge branch 'PHP-7.4'
* PHP-7.4:
  Backported call frame initialization improvement
2019-04-12 02:37:33 +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 7604f295ca Merge branch 'PHP-7.4'
* PHP-7.4:
  Added test
2019-04-11 21:37:26 +03:00
Christoph M. Becker 95040f9aa0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix potential OPcache file cache related issues
2019-04-11 18:31:41 +02:00
Nikita Popov 79d1d88e06 Merge branch 'PHP-7.4' 2019-04-11 17:44:38 +02:00
Nikita Popov 6960ea99ac Merge branch 'PHP-7.4' 2019-04-11 16:57:46 +02:00
Nikita Popov e91de955be Merge branch 'PHP-7.4' 2019-04-11 16:02:20 +02:00
Anatol Belski f4628436df Fix VirtualProtect memory size
As otherwise it would remove executable flag from JIT memory

Thanks Dmitry for the hint :)
2019-04-11 15:46:46 +02:00
Nikita Popov 771c64edcc Merge branch 'PHP-7.4' 2019-04-11 15:23:29 +02:00
Anatol Belski 853f881bd1 Avoid code duplication 2019-04-11 15:05:16 +02:00
Nikita Popov 3e26a6bd54 Merge branch 'PHP-7.4' 2019-04-11 14:14:31 +02:00
Dmitry Stogov 6d232eec03 Improved code generated for RETURN in methpods and closures 2019-04-11 15:13:14 +03:00
Dmitry Stogov 14b24340c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77877 (call_user_func() passes $this to satatic methods).
2019-04-11 14:31:40 +03:00
Nikita Popov 6dd7450427 Fix opcache build without JIT 2019-04-11 12:52:50 +02:00
Nikita Popov 47c74e780d Merge branch 'PHP-7.4' 2019-04-11 12:36:10 +02: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 9825d68c08 Use zend_quiet_write instead of ZEND_IGNORE_VALUE
Forgot this exists when I changed this earlier...
2019-04-11 12:24:10 +02:00
Nikita Popov 76f0ad3ade Merge branch 'PHP-7.4' 2019-04-11 12:23:03 +02:00
Nikita Popov b2fb753e85 Don't build JIT if the host architecture doesn't support it
Also display in phpinfo() whether JIT is unavailable/disabled/enabled.
2019-04-11 12:05:41 +02:00
Nikita Popov ee45565a2a Fix incompatible pointer warning in zend_test 2019-04-11 11:20:52 +02:00
Nikita Popov d31104facc Mark zend_jit_print_regset as unused
This is a debugging function, so it's usually not going to be used
and we don't want to see a warning about that.
2019-04-11 11:05:42 +02:00
Nikita Popov 0351552e1e Suppress write() warnings in jit_perf_dump.c 2019-04-11 11:00:38 +02:00
Nikita Popov 8f441c90ca Merge branch 'PHP-7.4' 2019-04-11 10:49:38 +02:00
Nikita Popov f89f67037a Merge branch 'PHP-7.4' 2019-04-11 10:42:05 +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 77c522062a Removed old constants (they are redeclared as macros) 2019-04-11 03:06:51 +03:00
Dmitry Stogov cc900edd77 Simplify call frame initialization 2019-04-11 02:08:32 +03:00
Anatol Belski 0d91b046a3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Ensure double slashes are replaced by the path normalization
2019-04-10 15:47:57 +02:00
Nikita Popov 9db2efe283 Merge branch 'PHP-7.4' 2019-04-10 15:31:24 +02:00
Anatol Belski 30f5822a9b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix phar:// include handling with file cache
2019-04-10 14:57:27 +02:00
Nikita Popov 6342458499 Merge branch 'PHP-7.4' 2019-04-10 14:45:01 +02:00
Nikita Popov 4e6a33dc2b Merge branch 'PHP-7.4' 2019-04-10 13:39:59 +02:00
Nikita Popov 2e982e975c Merge branch 'PHP-7.4' 2019-04-10 13:07:06 +02:00
Nikita Popov 30d968951d Merge branch 'PHP-7.4' 2019-04-10 12:23:49 +02:00
Peter Kokot 90654aff31 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix a spell mistake
2019-04-10 10:45:31 +02:00
Nikita Popov f3dd39ef61 Merge branch 'PHP-7.4' 2019-04-10 10:39:02 +02:00
Dmitry Stogov d374920e5e Eliminated unreachable jumps 2019-04-10 11:18:59 +03:00
Nikita Popov ef1bc493ed Merge branch 'PHP-7.4' 2019-04-10 10:02:23 +02:00
Nikita Popov dc17ca6044 Remove redundant $this args in SplObjectStorage implementation
If we pass intern we can get the object from &intern->std, no need
to pass around an extra argument everywhere.
2019-04-10 09:44:06 +02:00
Nikita Popov 03783bb55d Merge branch 'PHP-7.4' 2019-04-10 09:40:06 +02:00
Dmitry Stogov 20548ab506 Removed too strict register allocation constraint. 2019-04-10 02:06:51 +03:00
Dmitry Stogov 2980de29f0 Don't split basic block after RECV, if function checks type hints 2019-04-09 21:59:47 +03:00
Nikita Popov e640f64008 Merge branch 'PHP-7.4' 2019-04-09 17:27:22 +02:00
Nikita Popov 6cec795951 Merge branch 'PHP-7.4' 2019-04-09 17:24:37 +02:00
Dmitry Stogov 40c8585bab Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed ext/ffi/tests/044.phpt failure on 32-bit Linux
2019-04-09 16:12:53 +03:00
Dmitry Stogov e05867f089 Merge branch 'PHP-7.4'
* PHP-7.4:
  Eliminated check for assignment to itself
2019-04-09 15:37:50 +03:00
Dmitry Stogov 578049f157 Merge branch 'PHP-7.4'
* PHP-7.4:
  Micro-optimization
2019-04-09 14:39:15 +03:00
Dmitry Stogov 9c14cfdc78 Compare only "significant" bits 2019-04-09 11:28:29 +03:00
Peter Kokot 8afb3e6856 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicated substitude for Makefile
2019-04-09 02:11:57 +02:00
Dmitry Stogov ef6e99ec39 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Remove HAVE_STRERROR
2019-04-09 01:18:54 +03:00
Dmitry Stogov 2a310b24d6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Repare SWITCH VM
2019-04-09 01:17:36 +03:00
Peter Kokot a36c856b0a Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_STRERROR
2019-04-08 23:40:46 +02:00
Xinchen Hui 2f03c0aa72 Fixed missed NEWS while merging 2019-04-09 00:09:05 +08:00
Xinchen Hui c9fefb31fd Fixed bug #77857 (Wrong result if executed with JIT) 2019-04-09 00:07:23 +08:00
Nikita Popov 5db671dcd0 Fix get_gc signature 2019-04-08 16:25:02 +02:00
Nikita Popov e35a3cb28c ext/xml: Use object instead of resource
Use an XmlParser object instead of a resource. This is an internal
representation change, not a conversion to OO APIs. XmlParser objects
cannot be explicitly constructed, they are created through the usual
xml_parser_* APIs.

This change allows us to provide a proper get_gc() implementation,
thus resolving bugs #72793 and #76874.

xml_parser_free() is a no-op now and need not be called anymore.
2019-04-08 16:23:13 +02:00
Nikita Popov 2301f0bad3 Merge branch 'PHP-7.4' 2019-04-08 13:22:41 +02:00
Nikita Popov 39bffff9ce Merge branch 'PHP-7.4' 2019-04-08 13:00:28 +02:00
Nikita Popov aebf80e52d Merge branch 'PHP-7.4' 2019-04-08 11:42:34 +02:00
Xinchen Hui 231601e8f2 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fixed bug #77844
2019-04-08 17:18:37 +08:00
Xinchen Hui 6322b6ffe7 Change to php.net mail address 2019-04-08 17:16:07 +08:00
Nikita Popov b23fc39be6 Merge branch 'PHP-7.4' 2019-04-08 11:13:19 +02:00
Nikita Popov addd5a1693 Merge branch 'PHP-7.4' 2019-04-08 10:20:17 +02:00
Nikita Popov 890fe686bc Merge branch 'PHP-7.4' 2019-04-08 09:44:41 +02:00
Peter Kokot 6515c368c1 [ci skip] Ignore Opcache Jit generated files 2019-04-08 00:16:37 +02:00
David Carlier 914b27acb7 Fix few compiler warnings. 2019-04-08 00:00:09 +02:00
Peter Kokot 6d8d48498e Add AS_HELP_STRING to Opcache JIT option 2019-04-07 23:29:12 +02:00
Peter Kokot 36d2ac01d1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add AS_HELP_STRING to phpdbg options
2019-04-07 23:24:25 +02:00
Peter Kokot 149e0872de Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Mention docs dir
2019-04-07 23:16:16 +02:00
Peter Kokot e6f86fb17c Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove checks for locale.h, setlocale, localeconv
2019-04-07 18:34:02 +02:00
Peter Kokot e4a563b0c0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_SIGNAL_H
2019-04-07 15:57:21 +02:00
Peter Kokot 309edb070d Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_LIMITS_H
2019-04-07 15:21:48 +02:00
Peter Kokot 06fc66ed7c Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor AC_INIT in configure.ac and PHP versions
2019-04-07 05:54:12 +02:00
Stanislav Malyshev e1a39387d1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Always use ZEND_SECURE_ZERO() when cleaning up data
  bump versions after release
2019-04-06 19:06:29 -07:00
Peter Kokot 26725842cf Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update release process docs to Markdown
2019-04-07 00:59:33 +02:00
Christoph M. Becker dbf3b7ce09 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix ASAN configuration
2019-04-06 17:39:20 +02:00
Joe Watkins 7b58e43da3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Follow up #77849 PDOStatement objects in undefined state after clone
2019-04-06 01:32:15 +02:00
Joe Watkins 0ab45c24fe Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77849 Disable cloning of PDO handle/connection objects to avoid segfault
2019-04-06 00:56:52 +02:00
Christoph M. Becker 25994513d9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update Appveyor CI to php-sdk-2.2.0beta4
2019-04-05 23:16:48 +02:00
Peter Kokot 1a8bdb4d30 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Bring release process docs up 2 date
2019-04-05 22:38:11 +02:00
Peter Kokot f9b5d9c2a7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add opcache.lockfile_path and opcache.lockfile_path to ini settings
2019-04-05 19:46:11 +02:00
Joe Watkins ade73c360c Merge branch 'PHP-7.4'
* PHP-7.4:
  typo
2019-04-05 07:57:54 +02:00
David Carlier 5247a0bc66 JIT register dump, fix BSD build. 2019-04-05 01:51:59 +03:00
Dmitry Stogov df6709f480 Fixed JIT for === and !== 2019-04-05 01:12:34 +03:00
Dmitry Stogov 5b34c87d18 Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimized "smart branch" instructions
2019-04-05 00:26:20 +03:00
Javier Eguiluz 3b4d9f9d9e Fixed a typo 2019-04-04 19:00:38 +02: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 c4d5d26df3 Merge branch 'PHP-7.4'
* PHP-7.4:
  unused variable
2019-04-04 17:52:42 +03:00
Christoph M. Becker 01cd31ad9a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typos
2019-04-04 14:25:44 +02:00
Dmitry Stogov 21f249cfa4 Avoid code generation for BB with single VM instruction 2019-04-04 00:47:51 +03:00
Dmitry Stogov a146e6eea7 jump optimization 2019-04-03 23:37:25 +03:00
Dmitry Stogov 34d5c1b16f Fixed crash 2019-04-03 22:46:49 +03:00
Dmitry Stogov fc28e9a0b3 Avoid useless code generation for RECV opcodes 2019-04-03 22:28:23 +03:00
Matteo Beccati e4d40fc05c Merge branch 'PHP-7.4'
* PHP-7.4:
  Ref #76801 remove old file source from file_sources hash in case of file included more than once
2019-04-03 14:36:27 +02:00
Dmitry Stogov 22b3b6d5ea Use inlined HYBRID VM handlers for DO_FCALL* and ZEND_RETRUN 2019-04-03 15:02:04 +03:00
Dmitry Stogov 3df8e27731 Fixed incorrect address usage 2019-04-03 13:05:09 +03:00
Dmitry Stogov c91df3aedd Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove RC1 and RCN from scalar types.
2019-04-03 12:39:26 +03:00
Dmitry Stogov 32b16338b6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed SCCP support for ZEND_ASSIGN_OBJ_REF
2019-04-03 11:23:37 +03:00
Dmitry Stogov b9c639d7ac JIT code improvement for ocache.jit=1 (IP consistency) 2019-04-03 03:56:39 +03:00
Dmitry Stogov 85c249c9fd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed CFG construction for SWITCH opcodes
2019-04-03 03:12:13 +03:00
Dmitry Stogov 6cfa490786 Improve JIT code for smart branches 2019-04-03 02:00:54 +03:00
Dmitry Stogov 7f63b84a39 Merge branch 'PHP-7.4'
* PHP-7.4:
  array_merge() may return argument with incremented reference counter
2019-04-03 00:45:52 +03:00
Peter Kokot 1522a12974 Merge branch 'PHP-7.4'
* PHP-7.4:
  Clean ext/spl/tests/bug42364.phpt files after tests
2019-04-02 23:24:27 +02:00
Dmitry Stogov a5d5932904 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use fastcall calling convention
2019-04-02 23:49:31 +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 803d322240 Use fastcall calling convention 2019-04-02 22:10:57 +03:00
Dmitry Stogov 672d80f5dc Fixed clang compiler warnings 2019-04-02 21:54:32 +03:00
Kalle Sommer Nielsen eb8a19c8ad Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead JPEG2000 code
2019-04-02 21:18:48 +03:00
Dmitry Stogov 12da21b1c1 Avoid NEW opcode inlining when opcache.jit=1 2019-04-02 18:44:58 +03:00
Dmitry Stogov 278c8e7b59 Avoid generation of dead jumps 2019-04-02 18:18:00 +03:00
Dmitry Stogov 0d6fce887b Added comments 2019-04-02 15:41:25 +03:00
Christoph M. Becker ba67d44e07 Fix misplacement of calling convention declaration
MSVC is particularly picky about this, and won't compile as it is.
2019-04-02 14:10:10 +02:00
Remi Collet 2b41d1fb0c Merge branch 'PHP-7.4'
* PHP-7.4:
  fix paste issue
2019-04-02 11:06:22 +02:00
Christoph M. Becker eb7a7e4b53 Merge branch 'PHP-7.4'
* PHP-7.4:
  Pointer arithmetic on void pointers is illegal
2019-04-02 10:43:23 +02:00
Stanislav Malyshev bef66e1b6f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77831 - Heap-buffer-overflow in exif_iif_add_value in EXIF
2019-04-02 00:13:11 -07:00
Dmitry Stogov b6dc1d2466 typo 2019-04-02 00:37:34 +03:00
Dmitry Stogov 4e1d545d47 Fixed edge cases in ZEND_ASSIGN_OP+ASSIGN_DIM and replaced specialized helpers with single one 2019-04-01 23:17:45 +03:00
Dmitry Stogov 8bf2de045b Removed checks for required object handlers 2019-04-01 21:50:20 +03:00
Dmitry Stogov d196ec9b93 Eliminate hash lookup for immutable op_arrays 2019-04-01 21:20:52 +03:00
Dmitry Stogov 6fccca54a2 Use Zend MM for JIT temporary buffres allocation 2019-04-01 19:22:22 +03:00
Joe Watkins e9c49b73b7 fix zts jit build 2019-04-01 11:45:32 +02:00
Derick Rethans 9d620a94ac Updated to version 2019.1 (2019a) 2019-04-01 10:38:41 +01:00
Derick Rethans 562eda6b2c Empty merge 2019-04-01 10:38:41 +01:00
Stanislav Malyshev 63e0c22037 Merge branch 'PHP-7.4'
* PHP-7.4:
  Unfortunately, travis CI has old oniguruma library
  Update NEWS & UPGRADING
  Add fallbacks for older oniguruma versions
  Add mbstring.regex_stack_limit to php.ini-*
  Implement RF bug #72777 - ensure stack limits on mbstring functions.
2019-04-01 00:32:49 -07:00
Dmitry Stogov 9a06876072 Added JIT compiler for x86 and x86_64 2019-04-01 10:27:11 +03:00
Stanislav Malyshev a0fbb64fa3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix bug #77753 - Heap-buffer-overflow in php_ifd_get32s
2019-03-31 23:11:34 -07:00
Stanislav Malyshev a1631ac57b Fix bug #77753 - Heap-buffer-overflow in php_ifd_get32s 2019-03-31 23:11:34 -07:00
Anatol Belski d8628e941f Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve ascii check
2019-04-01 02:17:40 +02:00
Anatol Belski bf78142295 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rework conditions and make them more future proof
2019-03-31 22:11:54 +02:00
Anatol Belski 4e4bb56d6c Merge branch 'PHP-7.4'
* PHP-7.4:
  Implement stricter CRT check
2019-03-31 17:34:06 +02:00
Anatol Belski a58882be6c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix return
2019-03-31 14:32:54 +02:00
Anatol Belski 027e733e69 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rework the VS version evaluation
  Implement stricter extension compatibility check
2019-03-31 14:27:02 +02:00
Christoph M. Becker 09cdf51bec Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77827: preg_match does not ignore \r in regex flags
2019-03-31 13:36:59 +02:00
Joe Watkins 93773b6f15 Merge branch 'PHP-7.4'
* PHP-7.4:
  typo [ci skip]
2019-03-31 09:47:04 +02:00
Joe Watkins 1bb4b95e6f Merge branch 'PHP-7.4'
* PHP-7.4:
  correct readme [ci skip]
2019-03-31 09:44:19 +02:00
Anatol Belski 5c6fa92de8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix memory leak
2019-03-30 23:08:05 +01:00
Anatol Belski 059423a665 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix memory leak
2019-03-30 21:31:54 +01:00
Anatol Belski 00bb4ecb77 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use wchar_t as native type in C
2019-03-30 21:09:33 +01:00
Peter Kokot 7915d8bbca Merge branch 'PHP-7.4'
* PHP-7.4:
  Move README files to a dedicated docs directory
2019-03-30 19:39:32 +01:00
Matteo Beccati c6eac0d5be Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed SKIPIF when --disable-mbregex is used
2019-03-30 18:30:42 +01:00
Peter Kokot 6be6d9366a Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Add ffi_parser.c info
2019-03-30 16:09:28 +01:00
Peter Kokot d31a40dbcd Merge branch 'PHP-7.4'
* PHP-7.4:
  Join README.GIT-RULES and CONTRIBUTING.md
2019-03-30 16:01:53 +01:00
Peter Kokot 7d09091086 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Mention PHP_PROG_BISON and PHP_PROG_RE2C
2019-03-30 13:59:22 +01:00
Anatol Belski 82189218ba Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix handling and extend ext/ffi/tests/044.phpt
2019-03-30 12:54:05 +01:00
Anatol Belski 83c0f43fc8 No need for scoping anymore 2019-03-30 11:06:40 +01:00
Peter Kokot b49022b3dc Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor PHP_PROG_BISON and PHP_PROG_RE2C
2019-03-30 02:02:14 +01:00
Joe Watkins abd0e015a8 Merge branch 'PHP-7.4'
* PHP-7.4:
  tsrm environment lock
2019-03-29 19:06:59 +01:00
Dmitry Stogov 4006e99577 Merge branch 'PHP-7.4'
* PHP-7.4:
  Partial support for GCC mode attribute.
2019-03-29 17:29:32 +03:00
Christoph M. Becker 627072618e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test expectations
2019-03-29 14:35:51 +01:00
Christoph M. Becker a231ad2a9d Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix test expectations
2019-03-29 14:35:31 +01:00
Christoph M. Becker 482cd861f6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix test expectations
2019-03-29 14:34:07 +01:00
Christoph M. Becker 9f545de0b6 Fix test expectations
While bug77020.phpt already succeeds on Linux, it fails on Windows;
imap_fetchbody_variation3.phpt fails on both systems.  We therefore
make these tests more resilient.
2019-03-29 14:33:42 +01:00
Matteo Beccati d02c8ede15 Merge branch 'PHP-7.4'
* PHP-7.4:
  Removed declaration inside for loops
2019-03-29 14:24:40 +01:00
Matteo Beccati db1647ae1f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed SKIPIF when --disable-mbregex is used
2019-03-29 14:11:46 +01:00
Dmitry Stogov 3caf9d660d Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed memory leaks
2019-03-29 14:34:07 +03:00
Dmitry Stogov 5db761b68f Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow usage of incomplete types for external variables, function parameters and return values
2019-03-29 14:16:18 +03:00
Christoph M. Becker 81a8fd6d83 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test expectation
2019-03-29 09:59:24 +01:00
Dmitry Stogov 8eae762e2f Merge branch 'PHP-7.4'
* PHP-7.4:
  Added support for more GCC extensions: attributes, __extension__, __asm__ (ignored)
2019-03-29 02:38:12 +03:00
Dmitry Stogov 1dc9887cf5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Ignore "__format__" attribute
2019-03-29 00:53:06 +03:00
Dmitry Stogov 353578eecd Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow incomplete array variables - extern const char * const sys_errlist[]
2019-03-29 00:16:51 +03:00
Dmitry Stogov 13f5c83295 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77768 (FFI: Builtin Types Should Not Raise Error On Redeclaration)
2019-03-29 00:03:18 +03:00
Peter Kokot 011c935ae3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove php7.spec.in file
2019-03-28 17:45:02 +01:00
Bob Weinand 61ee869921 Change the precedence of concatenation
This implements RFC https://wiki.php.net/rfc/concatenation_precedence
2019-03-28 13:42:09 +01:00
Nikita Popov a3b2425f38 Merge branch 'PHP-7.4' 2019-03-28 10:15:06 +01:00
Nikita Popov 0720313bd4 Merge branch 'PHP-7.4' 2019-03-28 09:31:18 +01:00
Stanislav Malyshev 379e3cb8e3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Validate subject encoding in mb_split and mb_ereg_match
  Validate pattern against mbregex encoding
  SQLite3: add DEFENSIVE config for SQLite >= 3.26.0 as a mitigation strategy against potential security flaws
2019-03-28 00:45:52 -07:00
Joe Watkins a11e0e7c6e Merge branch 'PHP-7.4'
* PHP-7.4:
  fix build: readline support must be disabled by default in phpdbg
2019-03-28 07:35:50 +01:00
Dmitry Stogov 128318dcbf Merge branch 'PHP-7.4'
* PHP-7.4:
  Support for __restrict and few GCC attributes
2019-03-28 03:01:58 +03:00
Dmitry Stogov 03618d2c7d Merge branch 'PHP-7.4'
* PHP-7.4:
  Use semantic predicates to simplify lookahead and reduce backtracking
2019-03-28 01:22:11 +03:00
Nikita Popov 73a59eff52 Merge branch 'PHP-7.4' 2019-03-27 18:11:00 +01:00
Nikita Popov 6d71d983da Merge branch 'PHP-7.4' 2019-03-27 13:05:04 +01:00
Nikita Popov 9b7a78b1c2 Merge branch 'PHP-7.4' 2019-03-27 12:43:23 +01:00
Joe Watkins 7873c79651 Merge branch 'PHP-7.4'
* PHP-7.4:
  Consider phpdbg as cli
2019-03-27 10:39:04 +01:00
Joe Watkins b00cd127c9 Merge branch 'master' of git://github.com/php/php-src 2019-03-27 10:09:10 +01:00
Joe Watkins 5b3acb3eaf Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77805 phpdbg build fails when readline is shared
2019-03-27 10:05:03 +01:00
Sara Golemon eb4624fa2e Merge branch 'PHP-7.4'
* PHP-7.4:
  Validate interoperability between libsodium and libargon for argon2i(d) hashing
  Increase default time cost for argon2 password hashing
2019-03-27 00:37:31 -04:00
Joe Watkins fe7a914194 Merge branch 'PHP-7.4'
* PHP-7.4:
  more work on phpdbg conditional breaks
2019-03-27 00:02:52 +01:00
Joe Watkins f2ce7a745b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77800 phpdbg segfaults on conditional breakpoints
2019-03-26 23:07:19 +01:00
Peter Kokot fcfd7744db Merge branch 'PHP-7.4'
* PHP-7.4:
  Add minimum required PHP version to run-tests.php
2019-03-26 22:31:24 +01:00
Joe Watkins f43ce705fe remove last enable-maintainer-zts mention from source 2019-03-26 18:28:18 +01:00
Nikita Popov d49371fbd4 Merge branch 'PHP-7.4' 2019-03-26 15:48:02 +01:00
Ivan Enderlin ece7fe60f5 Fix typos in the documentation 2019-03-26 15:00:32 +01:00
Nikita Popov c5b2aa2f6c Merge branch 'PHP-7.4' 2019-03-26 10:11:47 +01:00
Peter Kokot d0e472740a Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Join contributing and patches docs
2019-03-25 23:00:50 +01:00
Peter Kokot 5e8116c579 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  Fix #77794: Incorrect Date header format in built-in server
2019-03-25 21:59:04 +01:00
Dmitry Stogov 2fd930d839 Merge branch 'PHP-7.4'
* PHP-7.4:
  Regenerate parser
2019-03-25 21:45:39 +03:00
Derick Rethans af1be9c33e Update README.RELEASE_PROCESS 2019-03-25 17:53:18 +01:00
Nikita Popov e446ccdf75 Merge branch 'PHP-7.4' 2019-03-25 17:46:33 +01:00
Nikita Popov 6f82ca8742 Merge branch 'PHP-7.4' 2019-03-25 17:36:38 +01:00
Nikita Popov edd5aa12f4 Merge branch 'PHP-7.4' 2019-03-25 16:43:50 +01:00
Nikita Popov 6d24b92315 Merge branch 'PHP-7.4' 2019-03-25 14:22:25 +01:00
Nikita Popov 864f8c07ea Merge branch 'PHP-7.4' 2019-03-25 13:58:56 +01:00
Joe Watkins 4383442923 Merge branch 'master' of git://github.com/php/php-src 2019-03-25 08:01:36 +01:00
Joe Watkins bd73607b9e TSRM cleanup for PHP8 2019-03-25 08:00:17 +01:00
Peter Kokot 09b9e773b7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enhance Autoconf version checking
2019-03-24 02:13:20 +01:00
Peter Kokot 54fdf6d3b7 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Move CREDITS from root to README
2019-03-24 01:57:53 +01:00
Peter Kokot 90b70b2626 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix tokenizer_data_gen.sh for non-posix bison
2019-03-24 01:54:46 +01:00
Peter Kokot bcb1c193d4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove enable-wddx from Travis compile as it WDDX has been unbundled as of PHP 7.4
2019-03-23 23:26:08 +01:00
Peter Kokot b167dbe3ae Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Remove text editor modelines
2019-03-23 21:11:32 +01:00
Joe Watkins 11663baa58 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix bug #76801: phpdbg too many open files error
2019-03-23 09:50:17 +01:00
Joe Watkins 161adfff3f For consistency with Windows, and because ZTS is not experimental or a "maintainer" feature, this commits renames --enable-maintainer-zts to --enable-zts in the autotools build, and related documentation 2019-03-23 07:34:54 +01:00
Remi Collet 598175eff6 Merge branch 'PHP-7.4'
* PHP-7.4:
  ensure pcre.jit=1 for this test
2019-03-22 15:32:07 +01:00
Remi Collet 68312cb37d Merge branch 'PHP-7.4'
* PHP-7.4:
  ensure pcre.jit=1 for these tests
2019-03-22 15:02:26 +01:00
Nikita Popov 3da522121b Merge branch 'PHP-7.4' 2019-03-22 13:07:15 +01:00
Nikita Popov 787ecb6d56 Merge branch 'PHP-7.4' 2019-03-22 12:41:39 +01:00
Nikita Popov c89f066810 Merge branch 'PHP-7.4' 2019-03-22 10:43:21 +01:00
Nikita Popov d7348cd2b4 Merge branch 'PHP-7.4' 2019-03-22 10:30:15 +01:00
rjhdby e86cdce549 Make zend_hash_sort() return void
This function always succeeds, so remove the success indicator
return value.
2019-03-22 09:51:47 +01:00
Nikita Popov 8ccdb8282e Merge branch 'PHP-7.4' 2019-03-22 09:48:26 +01:00
Nikita Popov 6b7545c225 Merge branch 'PHP-7.4' 2019-03-21 16:28:19 +01:00
Nikita Popov c4b383d663 Merge branch 'PHP-7.4' 2019-03-21 10:23:08 +01:00
Remi Collet 4916271664 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix test
  Sync the changes to ext/filter with 7.4, now that it works.
2019-03-21 09:20:30 +01:00
Kalle Sommer Nielsen e632537c83 Remove usage of HAVE_HASH_EXT and COMPILE_DL_HASH as ext/hash is always available (master only) 2019-03-20 20:43:35 +02:00
Christoph M. Becker 7b2a908c04 Merge branch 'PHP-7.4'
* PHP-7.4:
  Unbundle ext/wddx
2019-03-20 14:16:56 +01:00
Remi Collet 6ac9f47aba Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix tests after fix for #76717
2019-03-20 14:08:43 +01:00
Nikita Popov 8971728383 Merge branch 'PHP-7.4' 2019-03-20 12:07:05 +01:00
Remi Collet c1c554744d Merge branch 'PHP-7.4'
* PHP-7.4:
  NEWS
  Revert "Fix #77609: Tests from mailparse extension fails"
2019-03-20 11:56:12 +01:00
Nikita Popov 4080b2a748 Merge branch 'PHP-7.4' 2019-03-20 11:40:21 +01:00
Dmitry Stogov be3183e9cf Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed incorrect error message
2019-03-20 02:41:40 +03:00
Dmitry Stogov 71413747c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed typo
2019-03-20 01:32:01 +03:00
Peter Kokot 1f150b5b96 Merge branch 'PHP-7.4'
* PHP-7.4:
  Upgrade deprecated directives and use non-posix bison
2019-03-19 20:29:36 +01:00
Peter Kokot 61d9e53ed9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove extension readmes
2019-03-19 20:26:07 +01:00
Sara Golemon a25348a03a Merge branch 'PHP-7.4'
* PHP-7.4:
  Bump versions for 7.2.18
2019-03-19 14:33:30 -04:00
Remi Collet 1df4ef0773 Merge branch 'PHP-7.4'
* PHP-7.4:
  comment out sqlite3.defensive = 1 follow common practice, this is the default value
2019-03-19 16:28:22 +01:00
Christoph M. Becker ebb6c86d28 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prepare main branch for PHP 7.3.5
2019-03-19 16:22:53 +01:00
Remi Collet 28003c1c06 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix test for upcoming pcre2 10.33
2019-03-19 16:16:26 +01:00
Nikita Popov a895e58335 Merge branch 'PHP-7.4' 2019-03-19 15:37:07 +01:00
Nikita Popov 787652b324 Merge branch 'PHP-7.4' 2019-03-19 13:59:48 +01:00
Nikita Popov 44bb61fdef Merge branch 'PHP-7.4' 2019-03-19 13:10:01 +01:00
Nikita Popov b2048c6f87 Merge branch 'PHP-7.4' 2019-03-19 12:02:00 +01:00
Nikita Popov 13158a675e Merge branch 'PHP-7.4' 2019-03-19 11:59:36 +01:00
Dmitry Stogov 25fe1d5dde Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve white-space handling
2019-03-19 13:53:18 +03:00
Nikita Popov 3f5fb9a05f Merge branch 'PHP-7.4' 2019-03-19 11:29:20 +01:00
Nikita Popov e4ee38ab22 Merge branch 'PHP-7.4' 2019-03-19 10:40:08 +01:00
Nikita Popov c8458ddce1 Merge branch 'PHP-7.4' 2019-03-19 10:03:17 +01:00
Nikita Popov a0671b8822 Merge branch 'PHP-7.4' 2019-03-19 09:56:00 +01:00
Kalle Sommer Nielsen bab621c788 This should be redundant too as we use a centralized PCRE install 2019-03-19 06:58:15 +02:00
Kalle Sommer Nielsen d63b442778 Remove the PCRE checks from ext/filter. pecl/filter is obsolete and since PCRE is a hard dependency for PHP, it will always be available.
A side effect of this should be that Unix builds now support shared builds using ./configure
2019-03-19 06:50:02 +02:00
Dmitry Stogov 61548042f7 Merge branch 'PHP-7.4'
* PHP-7.4:
  micro-optimization
2019-03-19 02:02:37 +03:00
Peter Kokot 747713c191 Merge branch 'PHP-7.4'
* PHP-7.4:
  Leave bundled generated files untouched
2019-03-18 23:04:43 +01:00
Christoph M. Becker 598d9fa29b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix order
2019-03-18 20:09:43 +01:00
Christoph M. Becker ef25de3e4e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77578: Crash when php unload
2019-03-18 19:27:38 +01:00
Dmitry Stogov d52894dd58 Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimization for ASCII data
2019-03-18 19:34:17 +03:00
Nikita Popov c4e4ef0498 Merge branch 'PHP-7.4' 2019-03-18 16:58:59 +01:00
Christoph M. Becker e913368188 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid unnecessary global variable
2019-03-18 16:00:09 +01:00
Christoph M. Becker 86ba208499 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add bison version check to configure
2019-03-18 15:05:51 +01:00
Christoph M. Becker 8583603ee9 Merge branch 'PHP-7.4'
* PHP-7.4:
2019-03-18 15:00:02 +01:00
Nikita Popov e67d872e3e Merge branch 'PHP-7.4' 2019-03-18 12:33:12 +01:00
Xinchen Hui 59db08e3a2 Merge branch 'PHP-7.3'
* PHP-7.3:
  Simplfy test case
2019-03-18 19:30:20 +08:00
Nikita Popov cd22cfb5d2 Merge branch 'PHP-7.4' 2019-03-18 12:16:24 +01:00
Nikita Popov e0cbb80d29 Merge branch 'PHP-7.4' 2019-03-18 11:41:24 +01:00
Nikita Popov 3bbabc1f61 Merge branch 'PHP-7.4' 2019-03-18 11:07:43 +01:00
Nikita Popov 5b391599d1 Merge branch 'PHP-7.4' 2019-03-18 10:51:40 +01:00
Christoph M. Becker 2b54140b72 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #76956: Wrong value for 'syslog.filter' documented in php.ini
2019-03-18 10:21:38 +01:00
Nikita Popov 68d8880248 Merge branch 'PHP-7.4' 2019-03-18 10:14:19 +01:00
Nikita Popov d0eb445f60 Merge branch 'PHP-7.4' 2019-03-18 10:05:16 +01:00
Peter Kokot 2883d31198 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update changelog
2019-03-18 02:14:24 +01:00
Peter Kokot 347128a12b Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync AC_CHECK_SIZEOF m4 macro calls
2019-03-18 02:13:12 +01:00
Christoph M. Becker 7ad6e1d7de Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused variables
2019-03-17 23:32:53 +01:00
Derick Rethans 0a72c91009 Merge remote-tracking branch 'refs/remotes/origin/master' 2019-03-17 15:16:18 -04:00
Derick Rethans e13aba4fd8 Merge branch 'PHP-7.4' 2019-03-17 15:13:30 -04:00
Peter Kokot 7e7e6e95f7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove outdated README for ext/json
2019-03-17 20:10:57 +01:00
Derick Rethans ed2cbd49c8 Merge branch 'PHP-7.4' 2019-03-17 14:38:20 -04:00
Nuno Lopes 960f22709c Merge branch 'PHP-7.4'
* PHP-7.4:
  remove unneeded AC_REQUIRE([AC_PROG_YACC]) thanks Peter Kokot for noticing
2019-03-17 08:10:53 -04:00
Peter Kokot 592a119484 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove duplicate PHP_C_BIGENDIAN check
2019-03-17 01:33:06 +01:00
Peter Kokot 6aad38603f Merge branch 'PHP-7.4'
* PHP-7.4:
  Move distribution generator script to scripts/dev
2019-03-16 23:54:54 +01:00
Peter Kokot e963fcf5d4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Enhance the buildconf script
2019-03-16 23:43:56 +01:00
Peter Kokot 0a03b64c48 Merge branch 'PHP-7.4'
* PHP-7.4:
  snmp: remove unused var
2019-03-16 19:36:20 +01:00
Peter Kokot 631b3ca245 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Remove make install step from README
  check for bison binary, not yacc this fixes compilation with recent bison
2019-03-16 18:39:15 +01:00
Nuno Lopes 495a46aa1d check for bison binary, not yacc
this fixes compilation with recent bison
2019-03-16 12:21:52 -04:00
Peter Kokot 3acbdb5085 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update changelog
  bump minimum bison version to 3.0 after last parser changes
2019-03-16 15:18:58 +01:00
Nuno Lopes 39a5f73fd1 bump minimum bison version to 3.0 after last parser changes 2019-03-16 06:28:36 -04:00
Nuno Lopes dd84bd4393 snmp: remove unused var 2019-03-16 06:19:35 -04:00
Stanislav Malyshev c09b13cb02 [ci skip] Add Bishop Bettini as maintainer for phar & imap 2019-03-15 23:08:22 -07:00
Peter Kokot 76ea87d22f Merge branch 'PHP-7.4'
* PHP-7.4:
  Make credits script executable from other paths
2019-03-16 01:38:00 +01:00
Peter Kokot 81acc70b6e Merge branch 'PHP-7.4'
* PHP-7.4:
  Use separate output files in xmlreader tests
2019-03-15 23:51:54 +01:00
Peter Kokot 6426420f61 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace dirname(__FILE__) by __DIR__ in tests
2019-03-15 23:36:47 +01:00
Pedro Magalhães f26c8644bb Merge branch 'PHP-7.4'
* PHP-7.4:
  Added test for #77535 fix
2019-03-15 18:14:55 +00:00
Nikita Popov 0f4b70d571 Merge branch 'PHP-7.4' 2019-03-15 17:08:08 +01:00
Nikita Popov a7ac26eace Merge branch 'PHP-7.4' 2019-03-15 12:06:29 +01:00
Xinchen Hui 9f9b2573ed Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed bug #77697 (Crash on Big_Endian platform)
2019-03-15 16:58:42 +08:00
Peter Kokot d506097082 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add tests to XMLReader
2019-03-15 00:14:33 +01:00
Peter Kokot c02a03b49b Fix failing test
Since aad39879f2 accessing undefined
constants always throws an Error exception.
2019-03-14 20:41:19 +01:00
Peter Kokot 160f3636db Merge branch 'PHP-7.4'
* PHP-7.4:
  Clean build system
2019-03-14 20:21:30 +01:00
Peter Kokot 4b3da12363 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove HAVE_STRFTIME
2019-03-14 19:43:45 +01:00
Nikita Popov 273aa37b83 Fix weakref object handlers for master 2019-03-14 17:33:17 +01:00
Nikita Popov 2e69f59657 Merge branch 'PHP-7.4' 2019-03-14 17:30:53 +01:00
Nikita Popov 65be77b8db Merge branch 'PHP-7.4' 2019-03-14 17:26:36 +01:00
Xinchen Hui cc16781e9e Merge branch 'PHP-7.3'
* PHP-7.3:
  updated NEWS
  Fixed bug #77738 (Nullptr deref in zend_compile_expr)
2019-03-14 16:47:30 +08:00
Dmitry Stogov 2dd2dcaf9c Merge branch 'PHP-7.4'
* PHP-7.4:
  Implemented a faster way to access predefined TSRM resources - CG(), EG(), etc.
2019-03-14 03:02:10 +03:00
Peter Kokot d349ea3ceb Merge branch 'PHP-7.4'
* PHP-7.4:
  Integrate README.EXT_SKEL to help option
2019-03-13 20:56:51 +01:00
Claude Pache 37443a6318 test reversed 2019-03-13 20:27:17 +01:00
Joe Watkins 5d6d4ba4c4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix duplicate symbols _zend_ce_weakrefs
2019-03-13 11:38:37 +01:00
Peter Kokot 58a46b9efd Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Mention removed m4 macros
2019-03-13 00:16:56 +01:00
Anatol Belski 81ec402a08 Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync with ZEND_ENABLE_STATIC_TSRMLS_CACHE enablement in ext/mbstring
2019-03-12 21:35:34 +01:00
Dmitry Stogov 4111daf2b4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Better data packing
2019-03-12 22:19:36 +03:00
Dmitry Stogov dbb462db5d Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid reinitailization of ZTS cache pointer. Initialize it once in TSRM.c
2019-03-12 17:36:02 +03:00
Dmitry Stogov 59e954524e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed ZTS cache usage
2019-03-12 16:58:16 +03:00
Dmitry Stogov d30bd8e6d0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed ZTS cache usage
2019-03-12 15:25:59 +03:00
Dmitry Stogov a29f7e93b4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed ZTS cache usage
2019-03-12 15:14:00 +03:00
Dmitry Stogov 2b6cbcae06 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed ZTS cache usage
2019-03-12 15:06:11 +03:00
Dmitry Stogov 5f09db3073 Merge branch 'PHP-7.4'
* PHP-7.4:
  Switch to use ZTS cache
2019-03-12 14:17:14 +03:00
Dmitry Stogov c56bd7e220 Merge branch 'PHP-7.4'
* PHP-7.4:
  Cleanup unused module globals
2019-03-12 13:44:25 +03:00
Dmitry Stogov 403033db5b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed ZTS cache usage
2019-03-12 12:07:54 +03:00
Nikita Popov 36f875e78e Merge branch 'PHP-7.4' 2019-03-12 09:58:38 +01:00
Remi Collet f9f422659c Merge branch 'PHP-7.4'
* PHP-7.4:
  add --enable-rtld-now in upgrade info
  use DL_LOAD in litespeed
  add --enable-rtld-now build option to change dlopen behavior
2019-03-12 08:26:36 +01:00
Joe Watkins 5bf6562bcb Merge branch 'PHP-7.4'
* PHP-7.4:
  weakrefs upgrading note
2019-03-12 06:53:07 +01:00
Joe Watkins 99230784f5 Merge branch 'PHP-7.4'
* PHP-7.4:
  zend_weakrefs
2019-03-12 00:37:28 +01:00
Anatol Belski dbcdf85796 Merge branch 'PHP-7.4'
* PHP-7.4:
  Die hard if mc.exe or mt.exe not found
2019-03-11 21:00:18 +01:00
Christoph M. Becker dd6911550f Merge branch 'PHP-7.4'
* PHP-7.4:
  SQLite3: add DEFENSIVE config for SQLite >= 3.26.0 as a mitigation strategy against potential security flaws
2019-03-11 16:32:16 +01:00
Nikita Popov 9c0a3b78e8 Merge branch 'PHP-7.4' 2019-03-11 15:36:48 +01:00
Nikita Popov 92291ab726 Merge branch 'PHP-7.4' 2019-03-11 14:33:07 +01:00
Dmitry Stogov e279c80247 Merge branch 'PHP-7.4'
* PHP-7.4:
  Closure::fromCallable() supports only regular methods and magic method invoked through __call()/__callStatic(). It doesn't support method of internal classes invoked through C object or class handlers. This commit prevents crash described at bug #77708, but doesn't implement the desired behavior.
2019-03-11 15:42:41 +03:00
Dmitry Stogov ddf02dc978 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reset fields
2019-03-11 15:39:18 +03:00
Dmitry Stogov 63da56cfc4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77707 (FFI loses type information for opaque types)
2019-03-11 14:26:52 +03:00
Nikita Popov 852485d8ec Adjust tests for zpp TypeError change 2019-03-11 11:32:20 +01:00
Nikita Popov 6bfb119e18 Remove some unnecessary error handler setting
A few non-standard exceptions thrown on zpp failures will change to
TypeError due to this.
2019-03-11 11:32:20 +01:00
Nikita Popov 86ef425177 Intl: Don't separately report "bad arguments" errors
zpp will be throwing for these now, don't report them in addition to
that.
2019-03-11 11:32:20 +01: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 87f8b1b709 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77706 (Improve error messages in FFI for incompatible arguments)
2019-03-11 13:28:04 +03:00
Nikita Popov d40889e408 Merge branch 'PHP-7.4' 2019-03-11 10:19:50 +01:00
Joe Watkins bf21727ea0 Merge branch 'PHP-7.4'
* PHP-7.4:
  drop unused parameter from zend_startup
2019-03-11 10:10:45 +01:00
Nikita Popov bbdc5d1da6 Merge branch 'PHP-7.4' 2019-03-11 10:01:16 +01:00
Stanislav Malyshev 48d636a5e7 Merge branch 'PHP-7.4'
* PHP-7.4:
  This option doesn't exist for a long time.
2019-03-11 01:14:29 -07:00
Gabriel Caruso 726919e4b5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use EXPECT when possible
  Fix tests filenames
2019-03-11 00:07:32 -03:00
Peter Kokot f4a12d198b Merge branch 'PHP-7.4'
* PHP-7.4:
  Add meaningful error message for ext/zip
2019-03-11 00:16:36 +01:00
Jakub Zelenka dd50dba2db Merge branch 'PHP-7.4' 2019-03-10 16:37:39 +00:00
Anatol Belski 4c489a9a2e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bc break in Windows readlink
2019-03-10 15:49:56 +01:00
Anatol Belski bcf6d9bd00 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't use Opcache with the master test process
2019-03-10 13:58:04 +01:00
Anatol Belski abd60b0523 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update libmagic.patch [skip ci]
2019-03-08 21:56:07 +01:00
Anatol Belski 53eeeb5226 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in libmagic version
2019-03-08 21:45:45 +01:00
Anatol Belski c39f5ef9f4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77576 pull the libmagic implementation of gmtime_r
2019-03-08 20:48:52 +01:00
Anatol Belski ec0cc64d67 Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync with behavior change in OpenSSL 1.1.1b
  fix news
  bump versions after release
2019-03-08 15:57:29 +01:00
Nikita Popov ccc75ab353 Merge branch 'PHP-7.4' 2019-03-08 13:47:23 +01:00
Kalle Sommer Nielsen 8dee4cbfb2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Give Peter credit for his work on the Unix build system
2019-03-07 23:27:42 +02:00
Peter Kokot 80bebdd0e1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Clean *nix build system
2019-03-07 21:00:36 +01:00
Peter Kokot d0fd9fe977 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add AS_HELP_STRING to *nix build configure options
2019-03-07 20:38:04 +01:00
Nikita Popov a2343d1a40 Merge branch 'PHP-7.4' 2019-03-07 17:10:58 +01:00
Nikita Popov 19e4abd7ec Merge branch 'PHP-7.4' 2019-03-07 15:55:13 +01:00
Dmitry Stogov 85610279b0 Merge branch 'PHP-7.4'
* PHP-7.4:
  ws
2019-03-07 14:00:17 +03:00
Dmitry Stogov 24378d1809 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77345 (Stack Overflow caused by circular reference in garbage collection)
  Add support for MemorySanitizer
2019-03-07 13:58:42 +03:00
Christoph M. Becker e8d313f36f Fix order
Mirrors will certainly not update before we actually push the changes
to the repository.
2019-03-07 10:18:41 +01:00
Stanislav Malyshev 7803cb32af Oops, forgot error parameter 2019-03-06 22:44:16 -08:00
Stanislav Malyshev 0ef6c62685 Fix broken memcmp
We can't really do memcmp("_call", "__callStatic", sizeof("__callStatic") -1),
neither should we memcmp constants at all.
2019-03-06 22:22:58 -08:00
Stanislav Malyshev 749704cda3 Add support for MemorySanitizer 2019-03-06 17:07:28 -08:00
Peter Kokot 1d0072857b Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor README.md file
2019-03-07 01:58:41 +01:00
Peter Kokot 5f01bba931 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update editorconfig
2019-03-07 01:06:04 +01:00
Peter Kokot 2968a1d7f2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove legacy AC_CHECK_TYPE calls for uint and ulong
2019-03-06 22:50:46 +01:00
Nikita Popov 17fb7241e4 Merge branch 'PHP-7.4' 2019-03-06 13:45:13 +01:00
rjhdby 1be120f681 Cleanup some checks in zend_compile.c 2019-03-06 10:42:02 +01:00
Stanislav Malyshev e19230c417 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix shifting signed values too far
2019-03-06 00:50:33 -08:00
Stanislav Malyshev f90a1a472a Fix shifting signed values too far
Signed shift of 31 for int and 63 for long is flagged as undefined
behavior by UBSan (-fsanitize=undefined) and seems to be indeed so
according to the standard.

The patch converts such cases to use unsigned.
2019-03-05 21:41:22 -08:00
Stanislav Malyshev 433fc322fc Update maintainership years 2019-03-05 16:03:15 -08:00
Christoph M. Becker 76d60a9040 Prolong my extension maintainership 2019-03-06 01:00:42 +01:00
Christoph M. Becker bc7a871982 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77700: Writing truecolor images as GIF ignores interlace flag
2019-03-06 00:38:40 +01:00
Nikita Popov 824efb726c Merge branch 'PHP-7.4' 2019-03-05 17:10:26 +01:00
Gabriel Caruso a54fb4bc7a Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unnecessary check for always available extension
2019-03-05 12:55:07 -03:00
Nikita Popov 6395e7e37c Merge branch 'PHP-7.4' 2019-03-05 14:10:05 +01:00
Nikita Popov 80324281c9 Merge branch 'PHP-7.4' 2019-03-05 11:43:23 +01:00
Nikita Popov a32b89f029 Merge branch 'PHP-7.4' 2019-03-05 11:03:09 +01:00
Nikita Popov ae59537d84 Merge branch 'PHP-7.4' 2019-03-05 10:24:38 +01:00
Remi Collet 0a6f85dbb3 Merge branch 'PHP-7.4'
* PHP-7.4:
  add NEWS entry
2019-03-05 07:33:21 +01:00
Dmitry Stogov 95aa6bafa4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed support for callbacks with "void" return type
2019-03-05 01:04:33 +03:00
Christoph M. Becker 480130e196 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-03-04 19:51:39 +01:00
Stanislav Malyshev 7c4b59f70e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77630 - safer rename() procedure
2019-03-04 09:20:21 -08:00
Peter Kokot df5739513f Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace --with-gd by --enable-gd for Travis
2019-03-04 14:48:56 +01:00
Anatol Belski 4a7a79b37a Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix test portability
2019-03-04 14:30:55 +01:00
Christoph M. Becker 1deac39a69 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
2019-03-04 13:48:04 +01:00
Nikita Popov 5db64d695a Merge branch 'PHP-7.4' 2019-03-04 13:16:33 +01:00
Peter Kokot e624c596a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move Makefile.global and Makefile.gcov to build directory
2019-03-04 12:32:39 +01:00
Nikita Popov b90730c762 Merge branch 'PHP-7.4' 2019-03-04 12:24:09 +01:00
Peter Kokot f3fad10d33 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace PHP_TM_GMTOFF with AC_CHECK_MEMBERS
2019-03-04 12:13:22 +01:00
Peter Kokot 3f30706966 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove mkinstalldirs, install-sh and missing
2019-03-04 12:11:01 +01:00
Remi Collet ddd5446a5b Merge branch 'PHP-7.4'
* PHP-7.4:
  add NEWS entries
2019-03-04 11:09:41 +01:00
Nikita Popov 6be0511560 Merge branch 'PHP-7.4' 2019-03-04 10:54:38 +01:00
Nikita Popov 7a19be3ad0 Merge branch 'PHP-7.4' 2019-03-04 10:37:10 +01:00
Stanislav Malyshev d2a8904146 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77586 - phar_tar_writeheaders_int() buffer overflow
  Update NEWS
  Fix test error message
  Fix bug #77563 - Uninitialized read in exif_process_IFD_in_MAKERNOTE
  Fix bug #77540 - Invalid Read on exif_process_SOFn
  Fix integer overflows on 32-bits
  Fix #77431 SplFileInfo::__construct() accepts NUL bytes
  Fix bug #77396 - Null Pointer Dereference in phar_create_or_parse_filename
2019-03-03 23:34:00 -08:00
Stanislav Malyshev df98747cb3 Fix test error message 2019-03-03 23:34:00 -08:00
Stanislav Malyshev b82437eedd Fix bug #77563 - Uninitialized read in exif_process_IFD_in_MAKERNOTE
Also fix for bug #77659
2019-03-03 23:34:00 -08:00
Stanislav Malyshev 30d2b94a2e Fix bug #77540 - Invalid Read on exif_process_SOFn 2019-03-03 23:34:00 -08:00
Stanislav Malyshev 46e79c9351 Fix integer overflows on 32-bits 2019-03-03 23:34:00 -08:00
Christoph M. Becker ae1fad5bb7 Fix #77431 SplFileInfo::__construct() accepts NUL bytes
`SplFileInfo::__construct()` has to expect a path instead of a string,
analogous to `SplFileObject::__construct()`.
2019-03-03 23:34:00 -08:00
Stanislav Malyshev ad4f312d2f Fix bug #77396 - Null Pointer Dereference in phar_create_or_parse_filename 2019-03-03 23:34:00 -08:00
Peter Kokot 9762cd36b0 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Remove oniguruma and libzip leftovers
2019-03-04 01:29:31 +01:00
Peter Kokot 22259ab202 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove outdated hack for AIX 4
2019-03-03 14:51:44 +01:00
Peter Kokot b68c6db7ee Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove AC_PROG_CC_C_O
2019-03-03 14:49:10 +01:00
Anatol Belski d183dde7f1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Heedlessly enable thread LS cache for ext/hash.
2019-03-02 21:33:02 +01:00
Peter Kokot 759e07d228 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix shared module generation on AIX bug #77676
2019-03-02 18:52:44 +01:00
Peter Kokot 64f71c6f2f Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove LIBZEND_CHECK_INT_TYPE and PHP_CHECK_TYPES
2019-03-02 13:42:55 +01:00
Peter Kokot 4bf31aa30c Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS
  Fix #77609: Tests from mailparse extension fails
2019-03-01 22:45:49 +01:00
Peter Kokot ac6b9b0b7f Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove obsolescent AC_HEADER_STDC and memcpy check
2019-03-01 19:24:06 +01:00
Nikita Popov 472f577679 Merge branch 'PHP-7.4'
[ci skip]
2019-03-01 16:14:20 +01:00
Nikita Popov 57561bd129 Merge branch 'PHP-7.4' 2019-03-01 15:35:18 +01:00
Nikita Popov 5fb93bad71 Merge branch 'PHP-7.4' 2019-03-01 14:56:36 +01:00
Nikita Popov ac2bce9337 Merge branch 'PHP-7.4' 2019-03-01 14:52:09 +01:00
Nikita Popov 388ad58f57 Merge branch 'PHP-7.4' 2019-03-01 14:35:41 +01:00
Dmitry Stogov 66ec79ee63 Merge branch 'PHP-7.4'
* PHP-7.4:
  Unused parameter
2019-03-01 14:34:58 +03:00
Dmitry Stogov 20e8b01437 Merge branch 'PHP-7.4'
* PHP-7.4:
  Keep original debug info
2019-03-01 14:12:16 +03:00
Dmitry Stogov 3a119912ad Merge branch 'PHP-7.4'
* PHP-7.4:
  Enable Posix Shared Memory on Linux
2019-03-01 12:16:30 +03:00
Nikita Popov 7f262edaf3 Convert extract() prefix to string zpp arg 2019-03-01 10:11:28 +01:00
Peter Kokot 615ec3998e Merge branch 'PHP-7.4'
* PHP-7.4:
  Test for function posix_getpwnam() basic functionality
2019-03-01 02:02:32 +01:00
Kalle Sommer Nielsen 5e8ed0a0f5 NEWS 2019-03-01 01:41:19 +02:00
Kalle Sommer Nielsen fddc751024 Removed pdo_odbc.db2_instance_name 2019-03-01 01:24:53 +02:00
Peter Kokot e7f766742b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix file permissions
2019-02-28 22:08:42 +01:00
Peter Kokot f1b8c30174 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove PHP_DECLARED_TIMEZONE and HAVE_DECLARED_TIMEZONE
2019-02-28 21:18:06 +01:00
Nikita Popov 6130e56356 Merge branch 'PHP-7.4' 2019-02-28 17:24:13 +01:00
Nikita Popov 25859315b1 Merge branch 'PHP-7.4' 2019-02-28 16:43:24 +01:00
Nikita Popov 13b94dbb60 Merge branch 'PHP-7.4' 2019-02-28 16:15:13 +01:00
Nikita Popov c5d9a44798 Merge branch 'PHP-7.4' 2019-02-28 15:46:58 +01:00
Derick Rethans 29f15a1333 Merge branch 'PHP-7.4' 2019-02-28 13:52:46 +00:00
Anatol Belski 0c1470f9b7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync with 7be0e06b48
2019-02-28 14:04:29 +01:00
Christoph M. Becker ebefb95fda Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove dead code
2019-02-28 13:18:49 +01:00
Nikita Popov ca8e2abb8e Merge branch 'PHP-7.4' 2019-02-28 12:56:00 +01:00
Anatol Belski 9abb47155f Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync with behavior change in OpenSSL 1.1.1b
2019-02-28 12:53:31 +01:00
Nikita Popov 4be8208ef7 Use zpp string argument in imagecreatefromstring()
Instead of accepting a zval and casting it.
2019-02-28 12:07:34 +01:00
Nikita Popov 23d8d93aad Merge branch 'PHP-7.4' 2019-02-28 10:58:19 +01:00
Nikita Popov f198ae1558 Merge branch 'PHP-7.4' 2019-02-28 09:59:19 +01:00
Bob Weinand 4ad3d23744 Merge branch 'PHP-7.4' 2019-02-28 09:11:50 +01:00
Peter Kokot 0517d203b3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused package2.xml file
  Remove not needed PHP_PDO_PEAR_CHECK m4 macro
2019-02-28 01:09:30 +01:00
Peter Kokot 1433e176be Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove ZEND_FP_EXCEPT macro and HAVE_FP_EXCEPT
2019-02-27 22:54:23 +01:00
Peter Kokot 8035e84881 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused PHP_AC_BROKEN_SNPRINTF m4 macro
2019-02-27 21:20:49 +01:00
Peter Kokot 8df185f417 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove deprecated PHP_EXTENSION m4 macro
2019-02-27 20:13:25 +01:00
Bob Weinand 76e3828978 Merge branch 'PHP-7.4' 2019-02-27 18:47:03 +01:00
Bob Weinand 186431e5e1 Merge branch 'PHP-7.4' 2019-02-27 13:02:32 +01:00
Joe Watkins 0e391d14bf Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77673 ReflectionClass::getDefaultProperties returns spooky array
2019-02-27 09:18:20 +01:00
Nikita Popov 701c4170ad Merge branch 'PHP-7.4' 2019-02-26 17:27:16 +01:00
Nikita Popov 3133110fbf Merge branch 'PHP-7.4' 2019-02-25 17:45:35 +01:00
Nikita Popov d5ff57477b Merge branch 'PHP-7.4' 2019-02-25 13:03:26 +01:00
Nikita Popov 9489a7bfdb Merge branch 'PHP-7.4' 2019-02-25 09:36:20 +01:00
Xinchen Hui 761b0639bb Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed compiler warning
2019-02-25 15:04:13 +08:00
Xinchen Hui 249f7df221 Merge branch 'PHP-7.3'
* PHP-7.3:
  Update NEWS
  Fixed bug #77660 (Segmentation fault on break 2147483648)
2019-02-25 15:00:44 +08:00
Xinchen Hui c599c18e6f Merge branch 'PHP-7.3'
* PHP-7.3:
  Update NEWS
  Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper)
2019-02-25 14:42:56 +08:00
Jakub Zelenka 7a564fc0cb Merge branch 'PHP-7.4' 2019-02-24 13:15:57 +00:00
Jakub Zelenka 42df0d26ef Merge branch 'PHP-7.4' 2019-02-24 13:13:10 +00:00
Peter Kokot 20addf88e4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused PHP_AC_BROKEN_SPRINTF and AC_ZEND_BROKEN_SPRINTF
2019-02-23 22:29:16 +01:00
Peter Kokot d2a6096f25 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace Hebrew characters with escape sequences
2019-02-23 22:18:19 +01:00
Nikita Popov 4d18ab73ec Merge branch 'PHP-7.4' 2019-02-22 17:40:08 +01:00
Nikita Popov 276de41014 Merge branch 'PHP-7.4' 2019-02-22 15:44:13 +01:00
Nikita Popov 3cfe80dfce Merge branch 'PHP-7.4' 2019-02-22 13:42:22 +01:00
Nikita Popov 7cf177cd42 Merge branch 'PHP-7.4' 2019-02-22 12:45:39 +01:00
Nikita Popov b8866a5a0e Merge branch 'PHP-7.4' 2019-02-22 12:00:49 +01:00
Nikita Popov 93ee216966 Merge branch 'PHP-7.4' 2019-02-22 11:26:26 +01:00
Christoph M. Becker a9b90fe73c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77648: BOM in sapi/apache2handler/php_functions.c
2019-02-22 11:11:59 +01:00
Nikita Popov 3b5e566e62 Merge branch 'PHP-7.4' 2019-02-22 10:53:28 +01:00
Christoph M. Becker 60eee27757 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid potentially superfluous string reallocation
2019-02-22 10:35:46 +01:00
Nikita Popov 287f5ccdaf Merge branch 'PHP-7.4' 2019-02-22 10:15:02 +01:00
Christoph M. Becker a848ed30e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Properly clean up test case
2019-02-22 09:43:49 +01:00
Dmitry Stogov 258c7fb56e Merge branch 'PHP-7.4'
* PHP-7.4:
  Use different method to suppress "false" memory leak reports
2019-02-22 10:12:49 +03:00
Joe Watkins 97e09049e2 Merge branch 'PHP-7.4'
* PHP-7.4:
  While the compiler does not have the FBC set for zend_get_call_op, optimizer does, and so incorrectly results in ignoring these flags.
2019-02-21 23:55:54 +01:00
Joe Watkins 75ef3eac21 Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "zend_get_call_op ignoring compiler flags zend_get_call_op will ignore ZEND_COMPILE_IGNORE_USER_FUNCTIONS and ZEND_COMPILE_IGNORE_USER_FUNCTIONS, breaking the intention of these flags"
2019-02-21 22:41:13 +01:00
Peter Kokot 46d5571879 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused PDO_MYSQL_LIB_CHK m4 macro
2019-02-21 21:44:16 +01:00
Christoph M. Becker 4155f53dbe Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo in error message
2019-02-21 18:26:00 +01:00
Frank Denis 099c9ab422 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77646
2019-02-21 16:47:18 +01:00
Frank Denis 1b4b952456 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77646
2019-02-21 16:21:16 +01:00
Frank Denis ad3dac378e Fix bug #77646 2019-02-21 16:10:27 +01:00
Nikita Popov 1cae9f295e Merge branch 'PHP-7.4' 2019-02-21 16:07:03 +01:00
Nikita Popov 82d6759982 Merge branch 'PHP-7.4' 2019-02-21 13:46:42 +01:00
Nikita Popov 4dac02813d Merge branch 'PHP-7.4' 2019-02-21 12:23:08 +01:00
Nikita Popov 3ea3054f75 Merge branch 'PHP-7.4' 2019-02-21 12:06:58 +01:00
Joe Watkins 7a9d638302 Merge branch 'PHP-7.4'
* PHP-7.4:
  zend_get_call_op ignoring compiler flags zend_get_call_op will ignore ZEND_COMPILE_IGNORE_USER_FUNCTIONS and ZEND_COMPILE_IGNORE_USER_FUNCTIONS, breaking the intention of these flags
2019-02-21 11:22:43 +01:00
Nikita Popov 790a61b4f4 Merge branch 'PHP-7.4' 2019-02-21 11:08:37 +01:00
Nikita Popov d3b7a8bef7 Merge branch 'PHP-7.4' 2019-02-21 11:00:52 +01:00
Nikita Popov 4c2a86c47a Merge branch 'PHP-7.4' 2019-02-21 10:36:49 +01:00
Dmitry Stogov 653e47da16 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reinstall pcntl tick handler on each request (it cleared after the first request).
2019-02-20 22:38:22 +03:00
Peter Kokot ba84a61d06 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update changelog
  Remove unused PHP_SYS_LFS m4 macro
  Remove unused PHP_SOLARIS_PIC_WEIRDNESS m4 macro
  Remove unused PHP_TARGET_RDYNAMIC m4 macro
  Remove unused AM_SET_LIBTOOL_VARIABLE m4 macro
2019-02-20 20:07:31 +01:00
Christoph M. Becker 44ebbf0de1 Merge branch 'PHP-7.4'
* PHP-7.4:
  fix #77642: typo "incompatibe" in Zend/zend_compile.c [ci skip]
2019-02-20 19:41:25 +01:00
divinity76 876369bea2 fix #77642: typo "incompatibe" in Zend/zend_compile.c [ci skip]
the word "incompatible" was accidentally written as "incompatibe"

guilty commit: 7e597f48e9
2019-02-20 19:41:09 +01:00
Dmitry Stogov 21c59a6134 Merge branch 'PHP-7.4'
* PHP-7.4:
  Supress memory leak reports
2019-02-20 18:19:36 +03:00
Nikita Popov f432cb5883 Merge branch 'PHP-7.4' 2019-02-20 16:02:52 +01:00
Dmitry Stogov 5ce6d2ff63 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remember __COMPILER_HALT_OFFSET__(s) in preloaded scripts
2019-02-20 17:10:33 +03:00
Nikita Popov 0a66d82b52 Merge branch 'PHP-7.4' 2019-02-20 12:46:46 +01:00
Nikita Popov 0e34217925 Merge branch 'PHP-7.4' 2019-02-20 12:19:51 +01:00
Nikita Popov dae056420d Merge branch 'PHP-7.4' 2019-02-20 12:12:27 +01:00
Nikita Popov c8e2b333cb Merge branch 'PHP-7.4' 2019-02-20 11:22:31 +01:00
Dmitry Stogov db9323c56a Merge branch 'PHP-7.4'
* PHP-7.4:
  Disable preloading for sensetive opcache tests
2019-02-20 11:47:39 +03:00
Dmitry Stogov 4fe2cff5a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent error reporting during preloading request start-up
2019-02-20 11:36:24 +03:00
Nikita Popov 9ac998e427 Merge branch 'PHP-7.4' 2019-02-20 09:31:44 +01:00
Dmitry Stogov d85402a753 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added reference to parser generator
2019-02-20 10:27:27 +03:00
Dmitry Stogov a7ab1f9fba Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typo
  Simplify even more - use PHP_VERSION directly
  Bump FFI extension version to PHP_VERSION
2019-02-20 09:33:17 +03:00
Christopher Jones 47e68921dc Merge branch 'PHP-7.4' 2019-02-20 11:14:06 +11:00
Dmitry Stogov 35b502c64f Merge branch 'PHP-7.4'
* PHP-7.4:
  Skip tests f oci8 extension is not loaded
2019-02-20 02:35:44 +03:00
Dmitry Stogov 89a7d96761 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reorder conditions
2019-02-20 02:33:38 +03:00
Dmitry Stogov 832d683334 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use ZEND_ACC_REUSE_GET_ITERATOR flag instead of run-time class modification
2019-02-20 02:33:11 +03:00
Dmitry Stogov 05e7c8c9fc Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't preload tests without --FILE-- section
2019-02-20 00:07:32 +03:00
Dmitry Stogov ba25306e98 Merge branch 'PHP-7.4'
* PHP-7.4:
  Order of classes may matter
2019-02-19 23:51:08 +03:00
Dmitry Stogov b1a9d10608 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't restrict preloading with "open_basedir" directive.
2019-02-19 23:18:35 +03:00
Peter Kokot 93752ee696 Merge branch 'PHP-7.4'
* PHP-7.4:
  Rename non-existing site phpdbg.com to localhost
2019-02-19 20:22:14 +01:00
Joe Watkins b7a442ed7b Merge branch 'PHP-7.4'
* PHP-7.4:
  begin handlers are currently invoked without access to the arguments being sent, this moves the opcode after SEND
2019-02-19 18:21:49 +01:00
Dmitry Stogov 084e810c83 Merge branch 'PHP-7.4'
* PHP-7.4:
  Better new-line handling
2019-02-19 19:23:03 +03:00
Dmitry Stogov cd6c5e3703 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed memory leak
2019-02-19 19:21:59 +03:00
Nikita Popov 8f473ccf50 Merge branch 'PHP-7.4' 2019-02-19 17:12:33 +01:00
Christoph M. Becker f04cf7a587 Remove ability to import case-insensitive constants from typelibs
According to commit 23a5be3[1], we remove the ability to import case-
insensitive constants, but do not remove the now superfluous parameter
and ini setting.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=23a5be3696f4d92e1b18fd59f3ac63c6a15ea12a>
2019-02-19 16:54:52 +01:00
Dmitry Stogov 65c14c6203 Merge branch 'PHP-7.4'
* PHP-7.4:
  Check for USER_FUNCTION
2019-02-19 18:40:05 +03:00
Dmitry Stogov b06067e39c Merge branch 'PHP-7.4'
* PHP-7.4:
  Accurate handling of not preloaded classes
2019-02-19 18:10:10 +03:00
Nikita Popov 3093a2809b Merge branch 'PHP-7.4' 2019-02-19 15:55:40 +01:00
Dmitry Stogov 8b7115df4e Merge branch 'PHP-7.4'
* PHP-7.4:
  Better line handling
2019-02-19 17:17:12 +03:00
Dmitry Stogov 39ce15703c Merge branch 'PHP-7.4'
* PHP-7.4:
  Filter preloading warning messages
2019-02-19 17:09:30 +03:00
Dmitry Stogov 04af0020e8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't try to eliminate requre/include with stream wrappers
2019-02-19 16:55:37 +03:00
Dmitry Stogov bf77e635ac Merge branch 'PHP-7.4'
* PHP-7.4:
  Stop PHP in case of fatal error during preloading
2019-02-19 16:47:24 +03:00
Dmitry Stogov d42b3cad06 Merge branch 'PHP-7.4'
* PHP-7.4:
  ws
2019-02-19 15:51:37 +03:00
Christoph M. Becker 2bccd936ad Merge branch 'PHP-7.4'
* PHP-7.4:
  Prepare main branch for PHP 7.3.4
2019-02-19 13:10:34 +01:00
Remi Collet 7a7ac36421 Merge branch 'PHP-7.4'
* PHP-7.4:
  bump version to 7.2.17-dev
2019-02-19 12:47:19 +01:00
Nikita Popov f37c70c7fb Merge branch 'PHP-7.4' 2019-02-19 10:12:01 +01:00
Nikita Popov 1016e3a927 Merge branch 'PHP-7.4' 2019-02-19 10:07:47 +01:00
Nikita Popov 293313cc48 Merge branch 'PHP-7.4' 2019-02-19 10:03:29 +01:00
Remi Collet fec954de7b fix build with external libpcre2 2019-02-19 09:55:08 +01:00
Tyson Andre c7d339a9d0 Indicate that tidy's object methods expect 0 args
This prevents subclasses from being written with incompatible
implementations, e.g. expecting more required args.
2019-02-19 09:41:47 +01:00
Remi Collet b9cd76230d Merge branch 'PHP-7.4'
* PHP-7.4:
  use pkg-config for libedit
2019-02-19 09:10:16 +01:00
Remi Collet b4ee6ade99 Merge branch 'PHP-7.4'
* PHP-7.4:
  add readline_list_history with libedit >= 3.1 and mingweditline
2019-02-19 08:52:18 +01:00
Peter Kokot 80bcb89202 Merge branch 'PHP-7.4'
* PHP-7.4:
  gd imageloadfont, verify error while reading header
2019-02-19 03:26:33 +01:00
Peter Kokot 9a0345e0dd Merge branch 'PHP-7.4'
* PHP-7.4:
  added basic test for UConverter::setSourceEncoding()
2019-02-19 03:18:54 +01:00
Peter Kokot 4e00d55bd6 Merge branch 'PHP-7.4'
* PHP-7.4:
  added basic test for UConverter::getDestinationEncoding()
2019-02-19 03:15:42 +01:00
Peter Kokot 46a1d23b23 Merge branch 'PHP-7.4'
* PHP-7.4:
  added basic test for UConverter::getSourceEncoding()
2019-02-19 03:10:42 +01:00
Pedro Magalhães ac68789f9d Merge branch 'PHP-7.4'
* PHP-7.4:
  UPGRADING entry for pcntl_unshare [skip ci]
2019-02-18 20:00:31 +00:00
Andrea Faulds b63922cbfa Merge branch 'PHP-7.4' 2019-02-18 20:32:39 +01:00
Pedro Magalhães 83fb60a672 Merge branch 'PHP-7.4'
* PHP-7.4:
  Implement pcntl_unshare
2019-02-18 19:26:50 +00:00
Peter Kokot 6bd04de4f9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync header and footer with the rest of the files
2019-02-18 18:16:58 +01:00
Peter Kokot 18295b396f Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix typos in code comments in Zend/ [skip ci]
2019-02-18 17:56:38 +01:00
Nikita Popov 879cd04913 Merge branch 'PHP-7.4' 2019-02-18 17:51:41 +01:00
Dmitry Stogov 9baa3a95b9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77632 (FFI Segfaults When Called With Variadics)
2019-02-18 18:12:10 +03:00
Dmitry Stogov 96a9990a81 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use "quick" macro variants for known argument numbers
2019-02-18 17:53:43 +03:00
Nikita Popov 29aa080f0d Merge branch 'PHP-7.4' 2019-02-18 15:31:15 +01:00
Nikita Popov a9d457916e Merge branch 'PHP-7.4' 2019-02-18 14:04:36 +01:00
Nikita Popov e517cffd92 Merge branch 'PHP-7.4' 2019-02-18 13:58:40 +01:00
Nikita Popov 1bf40df181 Merge branch 'PHP-7.4' 2019-02-18 12:08:48 +01:00
Dmitry Stogov 820a9952cb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed use-after-free during preloading, when q class with unresolved constant uses a preloaded trait.
2019-02-18 13:48:06 +03:00
Nikita Popov 8ee78441f8 Merge branch 'PHP-7.4' 2019-02-18 11:17:45 +01:00
Peter Kokot 804f0f7de6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Test the warning for giving full path to dl()
2019-02-17 20:23:48 +01:00
Peter Kokot 6ce0f97287 Merge branch 'PHP-7.4'
* PHP-7.4:
  Tests for XMLWriter write cdata and raw
2019-02-17 19:44:36 +01:00
Peter Kokot 9dc8cd5cc2 Merge branch 'PHP-7.4'
* PHP-7.4:
  SplDoublyLinkedList Iterating a DLL by reference shouldn't be permitted
2019-02-17 19:36:13 +01:00
Peter Kokot bb7e88e9f1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Range of new tests for xmlreader functionality and exceptions/errors
2019-02-17 19:24:02 +01:00
Peter Kokot 46a0044518 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove unused --copy option from the makedist
2019-02-16 21:49:58 +01:00
Peter Kokot bd6b879e92 Merge branch 'PHP-7.4'
* PHP-7.4:
  Move some scripts from root directory to scripts/dev/
2019-02-16 16:59:31 +01:00
Andrea Faulds c5d5c9355a Merge branch 'PHP-7.4' 2019-02-16 01:54:46 +01:00
Andrea Faulds 11bfa11f77 Merge branch 'PHP-7.4' 2019-02-16 01:06:42 +01:00
Christoph M. Becker 93886f44a8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77626: Persistence confusion in php_com_import_typelib()
2019-02-15 18:57:59 +01:00
Nikita Popov e982e91590 Merge branch 'PHP-7.4' 2019-02-15 17:53:27 +01:00
Nikita Popov 9df07d6168 Merge branch 'PHP-7.4' 2019-02-15 17:37:47 +01:00
Nikita Popov ff2c27b326 Merge branch 'PHP-7.4' 2019-02-15 16:37:19 +01:00
Christoph M. Becker 5740336dea Merge branch 'PHP-7.4'
* PHP-7.4:
  Deprecate marking typelibs to load constants case-insensitively
2019-02-15 16:25:15 +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
Christoph M. Becker 47bcc02823 Merge branch 'PHP-7.4'
* PHP-7.4:
  Unify clone method error message
2019-02-15 15:08:41 +01:00
Dmitry Stogov 89c94161ea Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce slow code size
2019-02-15 17:03:49 +03:00
Nikita Popov f39e821c7e Merge branch 'PHP-7.4' 2019-02-15 14:43:55 +01:00
Christoph M. Becker 27d9800b1d Merge branch 'PHP-7.4'
* PHP-7.4:
  Deprecate case-insensitive constants via typelib import
2019-02-15 13:08:31 +01:00
Nikita Popov 68ed34005c Merge branch 'PHP-7.4' 2019-02-15 13:04:24 +01:00
Nikita Popov 029a8cd644 Merge branch 'PHP-7.4' 2019-02-15 12:41:52 +01:00
Nikita Popov 903821b1c7 Merge branch 'PHP-7.4' 2019-02-15 11:28:14 +01:00
Nikita Popov c3b63706a6 Merge branch 'PHP-7.4' 2019-02-15 10:28:13 +01:00
Christoph M. Becker 920438d624 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77621: Already defined constants are not properly reported
2019-02-15 00:39:40 +01:00
Peter Kokot 99c977d172 Merge branch 'PHP-7.4'
* PHP-7.4:
  gd imageloadfont test while reading header
2019-02-14 22:30:03 +01:00
Peter Kokot 35c1de3fd4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test to function posix_getlogin()
2019-02-14 20:50:12 +01:00
Peter Kokot 7dc8625376 Merge branch 'PHP-7.4'
* PHP-7.4:
  Create posix_getpwnam_basic_01.phpt
2019-02-14 20:37:47 +01:00
Peter Kokot cb74d28356 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add basic test for posix getgrnam
2019-02-14 20:28:35 +01:00
Peter Kokot d92535d81f Merge branch 'PHP-7.4'
* PHP-7.4:
  Small change in the test to pass
2019-02-14 20:12:15 +01:00
Peter Kokot 97f4313f68 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added basic stream_filter_register test
2019-02-14 20:04:16 +01:00
Peter Kokot 6ec1614f47 Merge branch 'PHP-7.4'
* PHP-7.4:
  use local resources instead remote
2019-02-14 19:52:31 +01:00
Nikita Popov 2bde15247b Merge branch 'PHP-7.4'
[ci skip]
2019-02-14 17:06:56 +01:00
Fabien Villepinte ce7552af38 Fixed bug #77619
Fix MultipleIterator::__construct() arginfo
2019-02-14 17:03:52 +01:00
Nikita Popov faaf510fa4 Merge branch 'PHP-7.4' 2019-02-14 14:02:32 +01:00
Nikita Popov f15d89a5e4 Merge branch 'PHP-7.4' 2019-02-14 13:00:11 +01:00
Nikita Popov 924142fef0 Merge branch 'PHP-7.4' 2019-02-14 12:51:39 +01:00
Nikita Popov bd13c209ab Merge branch 'PHP-7.4' 2019-02-14 11:50:06 +01:00
Nikita Popov ec694a9e81 Merge branch 'PHP-7.4' 2019-02-14 11:48:06 +01:00
Dmitry Stogov 4474cf43e6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77613 (method visibility change) (reverted ZEND_ACC_CTOR and ZEND_ACC_DTOR flags removal)
2019-02-14 13:18:45 +03:00
Nikita Popov ad559556b9 Merge branch 'PHP-7.4' 2019-02-14 10:43:52 +01:00
Nikita Popov ad37821e6c Merge branch 'PHP-7.4' 2019-02-14 10:03:08 +01:00
Gabriel Caruso 14357e5bcb Add UPGRADING entry for ad75511c8e 2019-02-14 05:15:27 -02:00
Gabriel Caruso ad75511c8e Missing param in arginfo_pdostatement_setfetchmode
PDO::setFetchMode receives up to 3 params
2019-02-14 05:13:38 -02:00
Peter Kokot d57c56cd63 Merge branch 'PHP-7.4'
* PHP-7.4:
  http_build_query add type cases
2019-02-13 22:00:19 +01:00
Peter Kokot 4572fef9cd Merge branch 'PHP-7.4'
* PHP-7.4:
  Refactor timelib.m4
2019-02-13 19:26:55 +01:00
Nikita Popov c53852dc0a Merge branch 'PHP-7.4' 2019-02-13 12:25:27 +01:00
Anatol Belski 81eff22d2d Merge branch 'PHP-7.4'
* PHP-7.4:
  Update NEWS and UPGRADING [ci skip]
2019-02-12 19:15:31 -08:00
Anatol Belski 571509f880 Merge branch 'PHP-7.4'
* PHP-7.4:
  Change the way timer queue timer is deleted
2019-02-12 18:38:15 -08:00
Peter Kokot d24faba072 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test socket_setopt() basic functionality
2019-02-13 02:31:27 +01:00
Nikita Popov 47bf4cd147 Merge branch 'PHP-7.4' 2019-02-12 18:02:34 +01:00
Nikita Popov 8afa2c632b Merge branch 'PHP-7.4' 2019-02-12 17:37:34 +01:00
Nikita Popov e683c189f2 Merge branch 'PHP-7.4' 2019-02-12 16:43:34 +01:00
Dmitry Stogov 7a3306a265 Merge branch 'PHP-7.4'
* PHP-7.4:
  Use TSRM macros
2019-02-12 17:40:52 +03: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
Nikita Popov cc004c903b Merge branch 'PHP-7.4'
[ci skip]
2019-02-12 15:09:47 +01:00
Johannes Schlüter 1dc049f41f Merge remote-tracking branch 'origin/master' 2019-02-12 15:03:58 +01:00
Johannes Schlüter d373d13d4a Merge branch 'PHP-7.4' 2019-02-12 15:02:18 +01:00
Nikita Popov bba93042b6 Merge branch 'PHP-7.4' 2019-02-12 13:58:02 +01:00
Nikita Popov 9926c9f7ce Merge branch 'PHP-7.4' 2019-02-12 11:44:01 +01:00
Dmitry Stogov 229575bef7 Merge branch 'PHP-7.4'
* PHP-7.4:
  typo
2019-02-12 13:24:27 +03:00
Nikita Popov 50387cab76 Merge branch 'PHP-7.4' 2019-02-12 10:50:37 +01:00
Dmitry Stogov c8a1db2f66 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Adding bunch of FreeBSD socket options flags specifics.
2019-02-12 12:29:02 +03:00
Dmitry Stogov 87bfafe8bf Fixed resoure numbering 2019-02-12 12:28:23 +03:00
Nikita Popov 698b3fbe1f Merge branch 'PHP-7.4' 2019-02-12 10:27:43 +01:00
Nikita Popov d406751e49 Merge branch 'PHP-7.4' 2019-02-12 10:10:36 +01:00
Nikita Popov 8dc7d22747 Merge branch 'PHP-7.4' 2019-02-12 09:59:12 +01:00
Nikita Popov e7177ac067 Merge branch 'PHP-7.4' 2019-02-12 09:32:52 +01:00
Nikita Popov a44122d202 Merge branch 'PHP-7.4' 2019-02-12 09:29:28 +01:00
Dmitry Stogov 2ccf289d28 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed possible crash
2019-02-12 11:21:30 +03:00
Dmitry Stogov 12d8b0af87 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77599 (Unbuffered queries; native prepared statements memory leak)
2019-02-12 11:04:06 +03:00
Dmitry Stogov 28869a52c2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid dependency on "struct flock" fields order.
2019-02-12 10:22:55 +03:00
Anatol Belski 9ee0d1ee2a Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace broken binary SDK version
2019-02-11 22:31:10 -08:00
Anatol Belski 79f8e12133 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update SDK version for AppVeyor
2019-02-11 22:14:44 -08:00
Christoph M. Becker 686c29531e Merge branch 'PHP-7.4'
* PHP-7.4:
  Deprecate ext/wddx
2019-02-11 19:32:53 +01:00
Anatol Belski 190c6b4a39 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix 32-bit build
2019-02-11 10:25:08 -08:00
Darek Slusarczyk 5c23370648 Merge branch 'PHP-7.4' 2019-02-11 18:50:45 +01:00
Nikita Popov 61ef088f21 Add missing braces in UPGRADING example
[ci skip]
2019-02-11 17:10:36 +01:00
Nikita Popov a302d11610 Don't silence fatal errors with @ 2019-02-11 16:17:55 +01:00
Nikita Popov b65435c986 Merge branch 'PHP-7.4' 2019-02-11 15:51:06 +01:00
Nikita Popov 5bd65be8a0 Merge branch 'PHP-7.4' 2019-02-11 15:36:47 +01:00
Nikita Popov 779b9bfe02 Merge branch 'PHP-7.4' 2019-02-11 15:00:52 +01:00
Nikita Popov b51a99ae35 Enable C99 in autoconf
This is essentially a no-op, because any current compiler already
defaults to C99 or C11.

When using language features from C99 or C11, please don't forget
that header files also need to be compatible with C++.
2019-02-11 14:32:30 +01:00
Nikita Popov 5702ce630b Merge branch 'PHP-7.4' 2019-02-11 12:32:38 +01:00
Nikita Popov c9ab1078cc Merge branch 'PHP-7.4' 2019-02-11 12:12:54 +01:00
Nikita Popov babe7f355f Merge branch 'PHP-7.4' 2019-02-11 11:34:27 +01:00
Nikita Popov f56895f9e6 Merge branch 'PHP-7.4' 2019-02-11 11:10:58 +01:00
Nikita Popov fdb85a828a Return empty str from quotemeta() on empty str 2019-02-11 09:58:10 +01:00
Nikita Popov ab48b45f6c Improve UPGRADING note
[ci skip]
2019-02-11 09:54:08 +01:00
Nikita Popov 3570cbdfd3 Merge branch 'PHP-7.4' 2019-02-11 09:36:57 +01:00
Xinchen Hui 9ccde783c9 Merge branch 'PHP-7.3'
* PHP-7.3:
  regenerate with re2c 1.0.3
2019-02-11 15:43:14 +08:00
Xinchen Hui 7045a2e19f Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed bug #77589 (Core dump using parse_ini_string with numeric sections)

Conflicts:
	Zend/zend_ini_scanner.c
	Zend/zend_ini_scanner_defs.h
2019-02-11 15:35:16 +08:00
Christopher Jones 19de2ea7ae Merge branch 'PHP-7.4'
* PHP-7.4:
  Merge PDO_OCI tracing attribute PR
  Merge PDO_OCI PR
  PDO_OCI tracing attribute PR merge
  pdo_oci: Add client identifier and module attrs
  pdo_oci: Register new attr constants and add tests
  pdo_oci: Add PDO_OCI_ATTR_ACTION and CLIENT_INFO
2019-02-11 17:06:07 +11:00
Peter Kokot c9c79764c3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added test for non existent file for iptcembed
2019-02-10 22:43:58 +01:00
Peter Kokot 143cc5affb Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix failing tests for readline() without input
2019-02-10 22:33:19 +01:00
Peter Kokot 005801a5a5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Expand FTP delete basic test with "unknown file" coverage
2019-02-10 20:42:27 +01:00
Peter Kokot 505dc5473c Merge branch 'PHP-7.4'
* PHP-7.4:
  Tests for readline() without input
2019-02-10 20:31:59 +01:00
Peter Kokot 4a254178f8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added test for openssl_pkcs12_export_to_file_error
2019-02-10 20:19:00 +01:00
Peter Kokot d237606574 Merge branch 'PHP-7.4'
* PHP-7.4:
  Tests the 'Dynamically loaded extensions are not enabled' warning for dl()
2019-02-10 20:14:35 +01:00
Peter Kokot 5167c05ba2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Test function quotemeta() - using an empty string is given as str.
2019-02-10 20:07:33 +01:00
Peter Kokot da70ce5409 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test case for pcntl_setpriority basic behaviour
2019-02-10 20:03:49 +01:00
Peter Kokot f60339269a Merge branch 'PHP-7.4'
* PHP-7.4:
  Added test for xml_parser_set_option
2019-02-10 19:53:03 +01:00
Peter Kokot 5c7f59bbf8 Merge branch 'PHP-7.4'
* PHP-7.4:
  fnmatch error when pattern or filename too long
2019-02-10 19:39:30 +01:00
Peter Kokot 3ee42a062a Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update changelog
2019-02-10 19:18:12 +01:00
Gabriel Caruso 35db1ccdd1 Fix variadic arginfos for Reflection functions
Fix arginfos of required arguments for some Reflection methods
2019-02-10 14:29:08 -02:00
Peter Kokot 35980191d2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Delete duplicate test file
2019-02-10 12:41:42 +01:00
Peter Kokot b6b5d50e63 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix failing tests
2019-02-10 01:27:50 +01:00
Peter Kokot a5fec99855 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix failing readline() basic test
2019-02-09 23:40:53 +01:00
Peter Kokot 174542a29b Merge branch 'PHP-7.4'
* PHP-7.4:
  Tests for __set_state magic method
2019-02-09 17:20:07 +01:00
Peter Kokot 3d9ee4d690 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for date_time_immutable invalid arguments
2019-02-09 17:05:54 +01:00
Peter Kokot cf4eb08598 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added basic test for ZipArchive::unchangeName()
2019-02-09 16:34:43 +01:00
Peter Kokot ddbba84918 Merge branch 'PHP-7.4'
* PHP-7.4:
  Added basic test for ZipArchive::unchangeIndex()
2019-02-09 16:28:36 +01:00
Anatol Belski 3b62f92100 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix TS build, ref #77377
2019-02-08 18:46:48 -08:00
Anatol Belski 08aaff35d1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Implement FR #77377 handle CTRL+C in Windows
2019-02-08 18:11:34 -08:00
Peter Kokot a3f40c0094 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for null return on version_compare with bad operator
2019-02-09 02:53:46 +01:00
Peter Kokot bc56250d2a Merge branch 'PHP-7.4'
* PHP-7.4:
  Test to verify that closures can't be instantiated
2019-02-09 02:47:02 +01:00
Peter Kokot feee2c0012 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add test for pcntl_getpriority() basic behaviour
2019-02-09 02:41:46 +01:00
Peter Kokot 53ff3b262b Merge branch 'PHP-7.4'
* PHP-7.4:
  readline - add basic test
2019-02-09 01:23:03 +01:00
Peter Kokot 981fac7827 Merge branch 'PHP-7.4'
* PHP-7.4:
  updated typo in test
2019-02-09 00:08:05 +01:00
Peter Kokot 17baa87fad Merge branch 'PHP-7.4'
* PHP-7.4:
  Update and fix remaining year ranges (2019)
2019-02-08 23:15:49 +01:00
Pedro Magalhães 6732028273 Implement the negative_array_index RFC 2019-02-08 16:08:32 +00:00
Nikita Popov c7bcd3afa4 Merge branch 'PHP-7.4' 2019-02-08 13:00:06 +01:00
Nikita Popov 4f0abd8465 Merge branch 'PHP-7.4' 2019-02-08 12:44:19 +01:00
Nikita Popov ee18bdb92c Merge branch 'PHP-7.4' 2019-02-08 12:31:25 +01:00
Nikita Popov 706ba151d2 Add ZEND_TRY_ASSIGN_BOOL API 2019-02-08 11:06:50 +01:00
Nikita Popov 8578c54e14 Merge branch 'PHP-7.4' 2019-02-08 10:50:07 +01:00
Levi Morrison 780bdcd80b Fix SplHeap::compare arginfo and tests 2019-02-08 10:14:38 +01:00
Nikita Popov c4bed605e7 Merge branch 'PHP-7.4' 2019-02-08 10:10:15 +01:00
Anatol Belski cb95175d6c Merge branch 'PHP-7.4'
* PHP-7.4:
  Sync test with changes in libcurl 7.64.0
  Sync test for libcurl 7.64.0
2019-02-07 22:31:03 -08:00
Peter Kokot 76c25ccdc9 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Move OPcache configure option changes
2019-02-08 00:31:37 +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
Peter Kokot 2306c855ab Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Update changelog
2019-02-07 18:13:59 +01:00
Nikita Popov 53d8fa5af7 Fix signedness in comparison in array_slice 2019-02-07 15:38:43 +01:00
Nikita Popov 689521af8e Remove two more zpp variation tests
These are normal zpp arguments in PHP 8. Also not adjusted for
32-bit systems...
2019-02-07 15:38:43 +01:00
Derick Rethans f1e7dd3966 Merge branch 'master' of git.php.net:php-src 2019-02-07 11:14:25 +00:00
Derick Rethans acd11efe4d Merge branch 'PHP-7.4' 2019-02-07 11:13:13 +00:00
Joe Watkins 51b9d72a36 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove --disable-opcache-filecache option
2019-02-07 12:07:44 +01:00
Nikita Popov 8440bf3cc1 Merge branch 'PHP-7.4' 2019-02-07 11:01:49 +01:00
Nikita Popov 7480f4ebae Merge branch 'PHP-7.4' 2019-02-07 10:06:37 +01:00
Christoph M. Becker 81bca7f918 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix NEWS
2019-02-05 23:06:18 +01:00
Christoph M. Becker 535fefc27b Fix typo 2019-02-05 22:58:41 +01:00
Nikita Popov 6e3600f41b Remove major version from apache module 2019-02-05 14:57:35 +01:00
Nikita Popov 480fa42255 Remove unnecessary setting of error_reporting in intl tests 2019-02-05 14:22:20 +01:00
Nikita Popov 2f1f34952e Remove $errcontext argument to error handlers
I'm removing the argument entirely here, but we might want to change
this to passing null or and empty array instead, if the impact of
dropping it entirely turns out to be too large.

This was deprecated as part of https://wiki.php.net/rfc/deprecations_php_7_2
as a doc-only deprecation.
2019-02-05 14:12:10 +01:00
Nikita Popov 790798f61e Merge branch 'PHP-7.4' 2019-02-05 12:43:13 +01:00
Nikita Popov d750f0a192 Merge branch 'PHP-7.4' 2019-02-05 09:41:08 +01:00
Dmitry Stogov cdade2e35d Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove copyright years.
2019-02-05 10:33:57 +03:00
Christoph M. Becker a1608b40bf Fix type confusion 2019-02-04 14:40:35 +01:00
Markus Staab 9d936669e8 fixed typo in UPGRADING.INTERNALS 2019-02-04 13:22:37 +01:00
Côme Chilliet f0ddc93f46 Removed ldap_sort and LDAP_DEPRECATED build flag
ldap_sort was deprecated in PHP7, it is now removed.
This allows removing the LDAP_DEPRECATED flag when building against
 openldap.
2019-02-04 13:10:05 +01:00
Côme Chilliet 53ce98ca0c Merge branch 'PHP-7.4'
* PHP-7.4:
  Mark ldap_control_paged_result and ldap_control_paged_result_response as deprecated
2019-02-04 12:21:18 +01:00
Dmitry Stogov d2f196f6f7 Merge branch 'PHP-7.4'
* PHP-7.4:
  Reset common fields of EG(trampoline)
2019-02-04 13:58:24 +03:00
Dmitry Stogov 6c81c4b613 Added note anout object habdlers API change 2019-02-04 13:47:09 +03:00
Dmitry Stogov db00790234 ext/com_dotnet support for new object handlers API 2019-02-04 13:20:25 +03: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 0476d55827 Make array_slice $length param a nullable integer
Instead of having custom parameter handling.
2019-02-04 10:38:42 +01:00
Peter Kokot 623911f993 Merge branch 'PHP-7.4'
* PHP-7.4:
  Remove local variables
2019-02-03 21:23:18 +01:00
Christoph M. Becker 5ded0e8f29 Merge branch 'PHP-7.4'
* PHP-7.4:
  [ci skip] Add missing notes regarding gc_status()
2019-02-03 18:33:08 +01:00
Joe Watkins 4752aecdaf Merge branch 'PHP-7.4'
* PHP-7.4:
  Properly check for array_replace_recursive in sccp.c
2019-02-03 08:42:22 +01:00
Nikita Popov 76f8a908bb Try to fix serialization_miscTypes_001.phpt 2019-02-01 17:15:16 +01:00
Nikita Popov 4f187b8fbc Make session_cache_expire() arg an integer
This is logically an integer, and the function also returns the old
value as an integer. The fact that the integer needs to be converted
to a string for the ini assignment is an implementation detail.
2019-02-01 16:08:31 +01:00
Nikita Popov 4a4c68d90d Make mb_ereg(i) argument a normal string argument
Instead of manually handling the string conversion, use the standard
zpp mechanism.
2019-02-01 15:40:09 +01:00
Nikita Popov 06ed6b8978 Make mb_ereg_replace() pattern argument a string 2019-02-01 15:19:46 +01:00
Nikita Popov ba5d2e6af3 Merge branch 'PHP-7.4' 2019-02-01 15:03:10 +01:00
Nikita Popov e237591467 Merge branch 'PHP-7.4' 2019-02-01 11:42:52 +01:00
Dmitry Stogov c4dd9776df Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #77329 (Buffer Overflow via overly long Error Messages)
2019-02-01 11:13:49 +03:00
Christoph M. Becker a851f16b2b Fix version.inc update notes 2019-01-31 16:12:50 +01:00
Nikita Popov aad39879f2 Remove bareword fallback for constants
Access to undefined constants will now always result in an Error
exception being thrown.

This required quite a few test changes, because there were many
buggy tests that unintentionally used bareword fallback in combination
with error suppression.
2019-01-31 13:52:06 +01:00
Nikita Popov 3d39479f4d Remove support for case-insensitive constants
The only remaining case-insensitive constants are null, true and
false, which are handled explicitly.

In the future we may convert them from constants to reserved keywords.
2019-01-31 13:52:06 +01:00
Dmitry Stogov 3d478e5cc3 gmp_random() was removed 2019-01-31 14:35:27 +03:00
Nikita Popov 9c5ab992ac Merge branch 'PHP-7.4' 2019-01-31 09:40:01 +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
Gabriel Caruso 4e0dd6b0ed Remove unnecessary CLI checks in tests 2019-01-31 00:21:32 -02:00
Joe Watkins cc60e8b000 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug 76596: phpdbg supports display_errors=stderr
2019-01-30 18:29:18 +01:00
Joe Watkins ffbe00886f Merge branch 'PHP-7.3'
* PHP-7.3:
  Fix #77546 iptcembed broken function
2019-01-30 17:11:11 +01:00
Nikita Popov e18fde1a02 Remove -1 crop mode 2019-01-30 16:46:36 +01:00
Nikita Popov f8038f827c Remove intl Normalizer::NONE 2019-01-30 16:35:32 +01:00
Nikita Popov db8a4e87a7 Remove error_reporting assignments in some tests 2019-01-30 16:00:19 +01:00
Nikita Popov 0dfd918ee7 Remove support for __autoload()
There are probably some improvements we can do to the SPL
implementation now that __autoload() is gone. In particular having
EG(autoload_func) as a property zend function, rather than a simple
callback probably doesn't make sense.
2019-01-30 14:00:16 +01:00
Nikita Popov e93bbf4d5d Remove more leftovers from invalid static calls
Callbacks are now always valid or not valid, there is no in-between.
2019-01-30 13:13:47 +01:00
Nikita Popov c88e2cce81 Removed read_exif_data() alias 2019-01-30 13:13:47 +01:00
Nikita Popov 5a2787a02d Require at least one arg for mktime/gmmktime 2019-01-30 13:13:47 +01:00
Nikita Popov 94ae35c9fb Remove ability to specify 'salt' in password_hash() 2019-01-30 13:13:47 +01:00
Nikita Popov 1870283e45 Merge branch 'PHP-7.4' 2019-01-30 12:02:47 +01:00
Nikita Popov d46ba963c3 Merge branch 'PHP-7.4' 2019-01-30 11:48:42 +01:00
Zeev Suraski 91a7c6f612 Take out some last remnants of the yearly copyright range 2019-01-30 11:26:28 +02:00
Zeev Suraski 02557f87bc Adios, yearly copyright ranges 2019-01-30 11:23:29 +02:00
Zeev Suraski 38c337f22e Remove year range from copyright notice 2019-01-30 11:00:23 +02:00
Nikita Popov 6c73b50cf6 Remove static calls to non-static methods 2019-01-30 09:19:02 +01:00
Nikita Popov 4eb5db2c68 Forbid unbinding $this from methods 2019-01-30 09:19:02 +01:00
Nikita Popov 23a5be3696 Remove ability to declare userland case-insensitive constants
This is part of https://wiki.php.net/rfc/case_insensitive_constant_deprecation.

This commit only removes the ability to declare such constants from
userland. Before the functionality can be removed entirely, it's
necessary to figure out the handling of true/false/null first.
2019-01-30 09:19:02 +01:00
Christoph M. Becker 90bb326100 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prepare main branch for PHP 7.2.16
2019-01-30 01:30:54 +01:00
Nikita Popov 52a9325328 Remove 'e' modifier for mb_ereg_replace()
This was deprecated in PHP 7.1 through
https://wiki.php.net/rfc/deprecate_mb_ereg_replace_eval_option.
2019-01-29 13:04:20 +01:00
Nikita Popov 682b54f687 Remove support for legacy constructors
This has been deprecated in PHP 7.0 by
https://wiki.php.net/rfc/remove_php4_constructors.
2019-01-29 13:04:20 +01:00
Nikita Popov 4d8dc2b05e Migrate finfo away from legacy ctor 2019-01-29 13:04:20 +01:00
Nikita Popov 371e4270b7 Migrate SOAP away from legacy constructors 2019-01-29 13:04:20 +01:00
Nikita Popov 55dbb57322 Remove support for custom assert() function
Deprecated in PHP 7.3 as part of
https://wiki.php.net/rfc/deprecations_php_7_3.
2019-01-29 11:10:47 +01:00
Nikita Popov 6b89dbcc5b Remove FILTER_FLAG_(SCHEME|HOST)_REQUIRED
Deprecated in PHP 7.3 as part of
https://wiki.php.net/rfc/deprecations_php_7_3.
2019-01-29 11:10:47 +01:00
Nikita Popov d74d3922ce Remove (unset) cast
Deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-29 11:10:47 +01:00
Nikita Popov c97b9aa226 Always treat needles as strings
This is part of https://wiki.php.net/rfc/deprecations_php_7_3.
2019-01-29 11:10:47 +01:00
Nikita Popov c7d7af8069 Remove fgetss and friends
These were deprecated in PHP 7.3 as part of
https://wiki.php.net/rfc/deprecations_php_7_3.
2019-01-29 09:43:00 +01:00
Nikita Popov 83bc092d40 Remove deprecated mbregex aliases
These have been deprecated in PHP 7.3 as part of
https://wiki.php.net/rfc/deprecations_php_7_3.
2019-01-29 09:43:00 +01:00
Nikita Popov 6db97f5e3e Remove each()
This has been deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-29 09:42:59 +01:00
Nikita Popov 9bc2cacf7f Remove special treatment of strings in asserts
This was deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-29 09:42:59 +01:00
Nikita Popov 46d38aa7cd Merge branch 'PHP-7.4' 2019-01-29 09:40:38 +01:00
Nikita Popov eeb7511f93 Fix session test after version bump 2019-01-28 16:36:43 +01:00
Nikita Popov 97df99a6d7 Add UPGRADING entries for removed functionality 2019-01-28 16:05:02 +01:00
Nikita Popov ff780feca4 Require second argument on (mb_)parse_str()
This was deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-28 15:58:24 +01:00
Nikita Popov 331e56ce38 Remove mbstring.func_overload
Deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-28 15:58:23 +01:00
Nikita Popov 920b4b249f Remove track_errors and $php_errormsg
This has been deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-28 15:58:23 +01:00
Nikita Popov ee16d99504 Remove create_function()
Deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-28 15:58:23 +01:00
Nikita Popov 734c305a82 Remove deprecated gmp_random() function
Deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2.
2019-01-28 15:58:22 +01:00
Joe Watkins faf03e47d2 bump versions of all the things 2019-01-28 15:54:55 +01:00
Christoph M. Becker 3d15a6f86b Remove deprecated INTL_IDNA_VARIANT_2003
Cf. <https://wiki.php.net/rfc/deprecate-and-remove-intl_idna_variant_2003>
2019-01-28 15:18:01 +01:00
Christoph M. Becker e973663882 Remove deprecated png2wbmp() and jpeg2wbmp()
Cf. <https://wiki.php.net/rfc/deprecate-png-jpeg-2wbmp>
2019-01-28 14:50:52 +01:00
Christoph M. Becker dfa6c2046a Remove deprecated image2wbmp()
Cf. <https://wiki.php.net/rfc/image2wbmp>.
2019-01-28 14:29:06 +01:00
Nikita Popov a9a02ca02b Merge branch 'PHP-7.4' 2019-01-28 11:29:17 +01:00
Nikita Popov 3c2e1b6bd5 Bump API numbers
These are of course not the final API numbers, but let's make sure
they differ from the 7.4 branch for now.
2019-01-28 11:17:30 +01:00
Nikita Popov e916a234be Upgrade branches in GIT-RULES 2019-01-28 11:17:30 +01:00
Nikita Popov e118151139 Clear NEWS, UPGRADING and UPGRADING.INTERNALS 2019-01-28 11:17:30 +01:00
11370 changed files with 258756 additions and 250776 deletions

No files matched your search

+2 -2
View File
@@ -1,6 +1,6 @@
version: "{branch}.build.{build}"
image: Visual Studio 2017
image: Visual Studio 2019
branches:
except:
@@ -24,7 +24,7 @@ environment:
PHP_BUILD_OBJ_DIR: c:\obj
PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk
PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0
PHP_BUILD_CRT: vc15
PHP_BUILD_CRT: vs16
# ext and env setup for tests
#MYSQL_TEST_PASSWD: Password12!
#MYSQL_TEST_USER: root
+3 -15
View File
@@ -252,16 +252,13 @@ define ____printzv_contents
____printzv &$zvalue->value.ref->val $arg1
end
if $type == 11
printf "const: %s", $zvalue->value.str->val
end
if $type == 12
printf "CONSTANT_AST"
end
if $type == 13
if $type == 12
printf "indirect: "
____printzv $zvalue->value.zv $arg1
end
if $type == 14
if $type == 13
printf "pointer: %p", $zvalue->value.ptr
end
if $type == 15
@@ -271,18 +268,9 @@ define ____printzv_contents
printf "_BOOL"
end
if $type == 17
printf "CALLABLE"
end
if $type == 18
printf "ITERABLE"
end
if $type == 19
printf "VOID"
end
if $type == 20
printf "_NUMBER"
end
if $type > 20
if $type > 17
printf "unknown type %d", $type
end
printf "\n"
+16 -4
View File
@@ -80,6 +80,9 @@ include/
libs/
modules/
# Used by build/gen_stub.php
build/PHP-Parser-*
# ------------------------------------------------------------------------------
# Configuration headers generated by the PHP build system
# ------------------------------------------------------------------------------
@@ -116,7 +119,7 @@ config.h.in
# ------------------------------------------------------------------------------
# SAPIs specific ignores
# ------------------------------------------------------------------------------
/sapi/apache2handler/libphp7.module
/sapi/apache2handler/libphp.module
/sapi/fpm/fpm/php-cgi
/sapi/fpm/init.d.php-fpm
/sapi/fpm/php-fpm.conf
@@ -168,8 +171,14 @@ php
/Zend/zend_language_parser.output
# ------------------------------------------------------------------------------
# Extensions files additionally generated by `cd ext/name && phpize && ./configure`
# Extensions files
# ------------------------------------------------------------------------------
# Miscellaneous extensions files
/ext/opcache/jit/zend_jit_x86.c
/ext/opcache/minilua
# Generated by `cd ext/name && phpize && ./configure`
/ext/*/build/
/ext/*/configure.ac
/ext/*/run-tests.php
@@ -182,7 +191,7 @@ php
/configure.bat
/configure.js
# Generated by `/configure.(bat|js)` (architecture dependend)
# Generated by `/configure.(bat|js)` (architecture dependent)
/config.nice.bat
# NTS debug build x86
@@ -200,7 +209,7 @@ php
# Generated by x64 compiler, includes Debug, Debug_TS, Release, Release_TS
/x64/
# Miscellaneous files generated by Windows build sytem
# Miscellaneous files generated by Windows build system
/main/config.w32.h
/win32/build/deplister.exe
/win32/build/deplister.obj
@@ -238,6 +247,9 @@ php
# Test results generated by `./run-tests.php`
php_test_results_*.txt
# Temporary test information generated by `./run-tests.php`
/run-test-info.php
# Temporary POST data placeholder files generated by `./run-tests.php`
phpt.*
+7 -5
View File
@@ -3,7 +3,7 @@ git:
dist: xenial
language: c
sudo: required
os: linux
addons:
apt:
packages:
@@ -68,12 +68,14 @@ env:
jobs:
include:
- env: ENABLE_MAINTAINER_ZTS=0 ENABLE_DEBUG=0
- env: ENABLE_ZTS=0 ENABLE_DEBUG=0
arch: amd64
- env: ENABLE_MAINTAINER_ZTS=1 ENABLE_DEBUG=1
- env: ENABLE_ZTS=1 ENABLE_DEBUG=1
arch: amd64
- env: ENABLE_MAINTAINER_ZTS=1 ENABLE_DEBUG=1 SKIP_IO_CAPTURE_TESTS=1 ARM64=1
- env: ENABLE_ZTS=1 ENABLE_DEBUG=1 SKIP_IO_CAPTURE_TESTS=1 ARM64=1
arch: arm64
- env: ENABLE_ZTS=1 ENABLE_DEBUG=1 SKIP_IO_CAPTURE_TESTS=1 S390X=1
arch: s390x
before_script:
- ccache --version
@@ -91,7 +93,7 @@ before_script:
script:
# ARM64 CI reports nproc=32, which is excessive.
- if [ -z "$ARM64" ]; then export JOBS=$(nproc); else export JOBS=16; fi
- ./sapi/cli/php run-tests.php -P -d extension=`pwd`/modules/zend_test.so $(if [ $ENABLE_DEBUG == 0 ]; then echo "-d opcache.enable_cli=1 -d opcache.protect_memory=1 -d zend_extension=`pwd`/modules/opcache.so"; fi) -g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP" --offline --show-diff --show-slow 1000 --set-timeout 120 -j$JOBS
- ./sapi/cli/php run-tests.php -P -d extension=`pwd`/modules/zend_test.so $(if [ $ENABLE_DEBUG == 0 ]; then echo "-d opcache.enable_cli=1 -d opcache.protect_memory=1 -d opcache.jit_buffer_size=16M -d zend_extension=`pwd`/modules/opcache.so"; fi) -g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP" --offline --show-diff --show-slow 1000 --set-timeout 120 -j$JOBS
- sapi/cli/php -d extension_dir=`pwd`/modules -r 'dl("zend_test");'
after_success:
+4 -9
View File
@@ -197,9 +197,6 @@ locations.
└─ tokenizer/
├─ tokenizer_data.c # Generated by `ext/tokenizer/tokenizer_data_gen.sh`
└─ ...
└─ xmlrpc/
├─ libxmlrpc/ # Forked and maintained in php-src
└─ ...
└─ zend_test # For testing internal APIs. Not needed for regular builds.
└─ ...
└─ zip/ # Bundled https://github.com/pierrejoye/php_zip
@@ -262,8 +259,8 @@ included.
- Run `make test` to check your change doesn't break other features.
- Rebuild PHP with `--enable-debug` which will show some kinds of memory errors
and check the PHP and web server error logs after running your PHP tests.
- Rebuild PHP with `--enable-maintainer-zts` to check your change compiles on
multi-threaded web servers.
- Rebuild PHP with `--enable-zts` to check your change compiles and operates
correctly in a thread safe PHP.
- Review the change once more just before submitting it.
## What happens after submitting contribution?
@@ -323,8 +320,8 @@ Having said that, here are the organizational rules:
`make test`.
7. For development use the `--enable-debug` switch to avoid memory leaks and the
`--enable-maintainer-zts` switch to ensure your code handles TSRM correctly
and doesn't break for those who need that.
`--enable-zts` switch to ensure your code handles TSRM correctly and doesn't
break for those who need that.
Currently we have the following branches in use:
@@ -409,8 +406,6 @@ New source code files should include the following header block:
```c
/*
+----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
+20 -20
View File
@@ -37,7 +37,7 @@ STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: cli
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>, Edin Kadribasic <edink@php.net>
MAINTENANCE: Unknown
MAINTENANCE: Xinchen Hui <laruence@php.net> (2013 - 2020)
STATUS: Working
SINCE: 4.3.0
-------------------------------------------------------------------------------
@@ -60,7 +60,7 @@ SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: phpdbg
PRIMARY MAINTAINER: Joe Watkins <krakjoe@php.net>, Bob Weinand <bwoebi@php.net>
MAINTENANCE: Unkown
MAINTENANCE: Unknown
STATUS: 5.6
-------------------------------------------------------------------------------
@@ -166,7 +166,7 @@ COMMENT: Use PostgreSQL 7.0.x or later. PostgreSQL 6.5.3 or less hav
-------------------------------------------------------------------------------
EXTENSION: sqlite3
PRIMARY MAINTAINER: Scott MacVicar <scottmac@php.net> (2008 - 2011)
Christoph M. Becker <cmb@php.net> (2016 - 2018)
Christoph M. Becker <cmb@php.net> (2016 - 2020)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
@@ -214,11 +214,6 @@ PRIMARY MAINTAINER: Rob Richards <rrichards@php.net> (2004 - 2010)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xmlrpc
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Orphaned
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: xmlwriter
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net> (2004 - 2010)
Pierre-Alain Joye <pajoye@php.net> (2005-2009)
@@ -255,6 +250,7 @@ STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: com_dotnet
PRIMARY MAINTAINER: Wez Furlong <wez@php.net> (2003 - 2005)
Christoph M. Becker <cmb@php.net> (2018 - 2020)
MAINTENANCE: Maintained
STATUS: Windows
SINCE: 5.0
@@ -317,7 +313,7 @@ STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gd
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net> (2002 - 2016)
Christoph M. Becker <cmb@php.net> (2015 - 2018)
Christoph M. Becker <cmb@php.net> (2015 - 2020)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -327,9 +323,9 @@ MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gmp
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net> (2000 - 2018)
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net> (2000 - 2019)
Antony Dovgal <tony2001@php.net> (2005 - 2010)
Nikita Popov <nikic@php.net> (2013 - 2019)
Nikita Popov <nikic@php.net> (2013 - 2020)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.4
@@ -348,7 +344,7 @@ MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: intl
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net> (2008 - 2018)
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net> (2008 - 2019)
Anatol Belski <ab@php.net> (2017 - 2018)
MAINTENANCE: Maintained
STATUS: Working
@@ -358,6 +354,7 @@ EXTENSION: imap
PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org> (1999 - 2004)
Ilia Alshanetsky <iliaa@php.net> (2002 - 2010)
Pierre-Alain Joye <pajoye@php.net> (2008 - 2010)
Bishop Bettini <bishop@php.net> (2018 - 2019)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -377,14 +374,14 @@ STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mbstring
PRIMARY MAINTAINER: Rui Hirokawa <hirokawa@php.net> (2001 - 2013)
Nikita Popov <nikic@php.net> (2017 - 2019)
Nikita Popov <nikic@php.net> (2017 - 2020)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: opcache
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@php.net> (2013 - 2018)
Xinchen Hui <laruence@php.net> (2013 - 2018)
Nikita Popov <nikic@php.net> (2016 - 2019)
Xinchen Hui <laruence@php.net> (2013 - 2020)
Nikita Popov <nikic@php.net> (2016 - 2020)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.5.0
@@ -412,6 +409,7 @@ EXTENSION: phar
PRIMARY MAINTAINER: Greg Beaver <cellog@php.net> (2008 - 2009)
Marcus Börger <helly@php.net> (2008 - 2008)
Steph Fox <sfox@php.net> (2008 - 2008)
Bishop Bettini <bishop@php.net> (2018 - 2019)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
@@ -428,13 +426,14 @@ STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: readline
PRIMARY MAINTAINER: Unkown
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: reflection
PRIMARY MAINTAINER: Marcus Börger <helly@php.net> (2003 - 2009)
Johannes Schlüter <johannes@php.net> (2006 - 2014)
Nikita Popov <nikic@php.net> (2019 - 2020)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -477,17 +476,17 @@ STATUS: Working
SINCE: 5.0.0
-------------------------------------------------------------------------------
EXTENSION: sysvmsg
PRIMARY MAINTAINER: Unkown
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sysvsem
PRIMARY MAINTAINER: Unkown
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sysvshm
PRIMARY MAINTAINER: Unkown
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
@@ -500,12 +499,13 @@ STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: tokenizer
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net> (2002 - 2002)
Nikita Popov <nikic@php.net> (2013 - 2019)
Nikita Popov <nikic@php.net> (2013 - 2020)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: zip
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net> (2006 - 2011)
Remi Collet <remi@php.net> (2013-2020)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
+151 -1948
View File
File diff suppressed because it is too large. Load diff
+15 -41
View File
@@ -7,15 +7,14 @@
7. ext/standard/scanf
8. ext/standard/strnatcmp.c
9. ext/standard/uuencode
10. libxmlrpc ext/xmlrpc
11. main/snprintf.c
12. main/strlcat
13. main/strlcpy
14. libgd (ext/gd)
15. ext/phar portions of tar implementations
16. ext/phar/zip.c portion extracted from libzip
17. libbcmath (ext/bcmath) see ext/bcmath/libbcmath/LICENSE
18. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP
10. main/snprintf.c
11. main/strlcat
12. main/strlcpy
13. libgd (ext/gd)
14. ext/phar portions of tar implementations
15. ext/phar/zip.c portion extracted from libzip
16. libbcmath (ext/bcmath) see ext/bcmath/libbcmath/LICENSE
17. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP
3. pcre2lib (ext/pcre)
@@ -355,32 +354,7 @@ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
10. libxmlrpc ext/xmlrpc
Copyright 2000 Epinions, Inc.
Subject to the following 3 conditions, Epinions, Inc. permits you, free
of charge, to (a) use, copy, distribute, modify, perform and display this
software and associated documentation files (the "Software"), and (b)
permit others to whom the Software is furnished to do so as well.
1) The above copyright notice and this permission notice shall be included
without modification in all copies or substantial portions of the
Software.
2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF
ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY
IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE OR NONINFRINGEMENT.
3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT
OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING
NEGLIGENCE), EVEN IF EPINIONS, INC. IS AWARE OF THE POSSIBILITY OF SUCH
DAMAGES.
11. main/snprintf.c
10. main/snprintf.c
Copyright (c) 2002, 2006 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -455,8 +429,8 @@ SIO stdio-replacement strx_* functions by Panos Tsirigotis
<panos@alumni.cs.colorado.edu> for xinetd.
12. main/strlcat
13. main/strlcpy
11. main/strlcat
12. main/strlcpy
Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
All rights reserved.
@@ -484,7 +458,7 @@ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14. libgd (ext/gd)
13. libgd (ext/gd)
* Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded under
@@ -554,7 +528,7 @@ Avenue Software Corporation for their prior contributions.
END OF COPYRIGHT STATEMENT
15. ext/phar portions of tar implementations
14. ext/phar portions of tar implementations
portions of tar implementations in ext/phar - phar_tar_octal() are based on an
implementation by Tim Kientzle from libarchive, licensed with this license:
@@ -583,7 +557,7 @@ implementation by Tim Kientzle from libarchive, licensed with this license:
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
16. ext/phar/zip.c portion extracted from libzip
15. ext/phar/zip.c portion extracted from libzip
zip_dirent.c -- read directory entry (local or central), clean dirent
Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner
@@ -617,7 +591,7 @@ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP
16. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP
The OpenLDAP Public License
Version 2.8, 17 August 2003
+22 -14
View File
@@ -11,12 +11,13 @@
PHP is a popular general-purpose scripting language that is especially suited to
web development. Fast, flexible and pragmatic, PHP powers everything from your
blog to the most popular websites in the world. PHP is distributed under the PHP
License v3.01.
blog to the most popular websites in the world. PHP is distributed under the
[PHP License v3.01](LICENSE).
[![Build status](https://travis-ci.org/php/php-src.svg?branch=master)](https://travis-ci.org/php/php-src)
[![Build status](https://ci.appveyor.com/api/projects/status/meyur6fviaxgdwdy?svg=true)](https://ci.appveyor.com/project/php/php-src)
[![Build Status](https://dev.azure.com/phpazuredevops/php/_apis/build/status/php.php-src?branchName=PHP-7.4)](https://dev.azure.com/phpazuredevops/php/_build/latest?definitionId=1&branchName=PHP-7.4)
[![Build status](https://ci.appveyor.com/api/projects/status/meyur6fviaxgdwdy/branch/master?svg=true)](https://ci.appveyor.com/project/php/php-src)
[![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)
[![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)
## Documentation
@@ -38,24 +39,31 @@ For other systems, see the [installation chapter](https://php.net/install).
*For Windows, see [Build your own PHP on Windows](https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2).*
PHP uses autotools on Unix systems to configure the build:
For a minimal PHP build from Git, you will need autoconf, bison, and re2c. For
a default build, you will additionally need libxml2 and libsqlite3. On Ubuntu,
you can install these using:
sudo apt install -y pkg-config build-essential autoconf bison re2c \
libxml2-dev libsqlite3-dev
Generate configure:
./buildconf
./configure [options]
*See `./configure -h` for configuration options.*
Configure your build. `--enable-debug` is recommended for development, see
`./configure --help` for a full list of options.
make [options]
# For development
./configure --enable-debug
# For production
./configure
*See `make -h` for make options.*
The `-j` option shall set the maximum number of jobs `make` can use for the
build:
Build PHP. To speed up the build, specify the maximum number of jobs using `-j`:
make -j4
Shall run `make` with a maximum of 4 concurrent jobs: Generally the maximum
number of jobs should not exceed the number of cores available.
The number of jobs should usually match the number of available cores, which
can be determined using `nproc`.
## Testing PHP source code
+52 -154
View File
@@ -17,11 +17,11 @@
#include <stdio.h>
#include <stdarg.h>
#ifdef ZEND_DEBUG
#if ZEND_DEBUG
# include <assert.h>
# define TSRM_ASSERT assert
# define TSRM_ASSERT(c) assert(c)
#else
# define TSRM_ASSERT
# define TSRM_ASSERT(c)
#endif
typedef struct _tsrm_tls_entry tsrm_tls_entry;
@@ -74,7 +74,7 @@ int tsrm_error(int level, const char *format, ...);
static int tsrm_error_level;
static FILE *tsrm_error_file;
#if TSRM_DEBUG
#ifdef TSRM_DEBUG
#define TSRM_ERROR(args) tsrm_error args
#define TSRM_SAFE_RETURN_RSRC(array, offset, range) \
{ \
@@ -102,49 +102,26 @@ static FILE *tsrm_error_file;
}
#endif
#if defined(GNUPTH)
static pth_key_t tls_key;
# define tsrm_tls_set(what) pth_key_setdata(tls_key, (void*)(what))
# define tsrm_tls_get() pth_key_getdata(tls_key)
#elif defined(PTHREADS)
/* Thread local storage */
static pthread_key_t tls_key;
# define tsrm_tls_set(what) pthread_setspecific(tls_key, (void*)(what))
# define tsrm_tls_get() pthread_getspecific(tls_key)
#elif defined(TSRM_ST)
static int tls_key;
# define tsrm_tls_set(what) st_thread_setspecific(tls_key, (void*)(what))
# define tsrm_tls_get() st_thread_getspecific(tls_key)
#elif defined(TSRM_WIN32)
#ifdef TSRM_WIN32
static DWORD tls_key;
# define tsrm_tls_set(what) TlsSetValue(tls_key, (void*)(what))
# define tsrm_tls_get() TlsGetValue(tls_key)
#else
# define tsrm_tls_set(what)
# define tsrm_tls_get() NULL
# warning tsrm_set_interpreter_context is probably broken on this platform
static pthread_key_t tls_key;
# define tsrm_tls_set(what) pthread_setspecific(tls_key, (void*)(what))
# define tsrm_tls_get() pthread_getspecific(tls_key)
#endif
TSRM_TLS uint8_t in_main_thread = 0;
TSRM_TLS uint8_t is_thread_shutdown = 0;
/* Startup TSRM (call once for the entire process) */
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename)
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, const char *debug_filename)
{/*{{{*/
#if defined(GNUPTH)
pth_init();
pth_key_create(&tls_key, 0);
#elif defined(PTHREADS)
pthread_key_create( &tls_key, 0 );
#elif defined(TSRM_ST)
st_init();
st_key_create(&tls_key, 0);
#elif defined(TSRM_WIN32)
#ifdef TSRM_WIN32
tls_key = TlsAlloc();
#else
pthread_key_create(&tls_key, 0);
#endif
/* ensure singleton */
@@ -232,13 +209,11 @@ TSRM_API void tsrm_shutdown(void)
if (tsrm_error_file!=stderr) {
fclose(tsrm_error_file);
}
#if defined(GNUPTH)
pth_kill();
#elif defined(PTHREADS)
#ifdef TSRM_WIN32
TlsFree(tls_key);
#else
pthread_setspecific(tls_key, 0);
pthread_key_delete(tls_key);
#elif defined(TSRM_WIN32)
TlsFree(tls_key);
#endif
if (tsrm_shutdown_handler) {
tsrm_shutdown_handler();
@@ -253,11 +228,11 @@ TSRM_API void tsrm_shutdown(void)
/* {{{ */
/* environ lock api */
TSRM_API void tsrm_env_lock() {
TSRM_API void tsrm_env_lock(void) {
tsrm_mutex_lock(tsrm_env_mutex);
}
TSRM_API void tsrm_env_unlock() {
TSRM_API void tsrm_env_unlock(void) {
tsrm_mutex_unlock(tsrm_env_mutex);
} /* }}} */
@@ -494,67 +469,6 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
TSRM_SAFE_RETURN_RSRC(thread_resources->storage, id, thread_resources->count);
}/*}}}*/
/* frees an interpreter context. You are responsible for making sure that
* it is not linked into the TSRM hash, and not marked as the current interpreter */
void tsrm_free_interpreter_context(void *context)
{/*{{{*/
tsrm_tls_entry *next, *thread_resources = (tsrm_tls_entry*)context;
int i;
while (thread_resources) {
next = thread_resources->next;
for (i=0; i<thread_resources->count; i++) {
if (resource_types_table[i].dtor) {
resource_types_table[i].dtor(thread_resources->storage[i]);
}
}
for (i=0; i<thread_resources->count; i++) {
if (!resource_types_table[i].fast_offset) {
free(thread_resources->storage[i]);
}
}
free(thread_resources->storage);
free(thread_resources);
thread_resources = next;
}
}/*}}}*/
void *tsrm_set_interpreter_context(void *new_ctx)
{/*{{{*/
tsrm_tls_entry *current;
current = tsrm_tls_get();
/* TODO: unlink current from the global linked list, and replace it
* it with the new context, protected by mutex where/if appropriate */
/* Set thread local storage to this new thread resources structure */
tsrm_tls_set(new_ctx);
/* return old context, so caller can restore it when they're done */
return current;
}/*}}}*/
/* allocates a new interpreter context */
void *tsrm_new_interpreter_context(void)
{/*{{{*/
tsrm_tls_entry *new_ctx, *current;
THREAD_T thread_id;
thread_id = tsrm_thread_id();
tsrm_mutex_lock(tsmm_mutex);
current = tsrm_tls_get();
allocate_new_resource(&new_ctx, thread_id);
/* switch back to the context that was in use prior to our creation
* of the new one */
return tsrm_set_interpreter_context(current);
}/*}}}*/
/* frees all resources allocated for the current thread */
void ts_free_thread(void)
@@ -637,8 +551,6 @@ void ts_free_id(ts_rsrc_id id)
}/*}}}*/
/*
* Utility Functions
*/
@@ -648,12 +560,8 @@ TSRM_API THREAD_T tsrm_thread_id(void)
{/*{{{*/
#ifdef TSRM_WIN32
return GetCurrentThreadId();
#elif defined(GNUPTH)
return pth_self();
#elif defined(PTHREADS)
#else
return pthread_self();
#elif defined(TSRM_ST)
return st_thread_self();
#endif
}/*}}}*/
@@ -665,14 +573,9 @@ TSRM_API MUTEX_T tsrm_mutex_alloc(void)
#ifdef TSRM_WIN32
mutexp = malloc(sizeof(CRITICAL_SECTION));
InitializeCriticalSection(mutexp);
#elif defined(GNUPTH)
mutexp = (MUTEX_T) malloc(sizeof(*mutexp));
pth_mutex_init(mutexp);
#elif defined(PTHREADS)
#else
mutexp = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
pthread_mutex_init(mutexp,NULL);
#elif defined(TSRM_ST)
mutexp = st_mutex_new();
#endif
#ifdef THR_DEBUG
printf("Mutex created thread: %d\n",mythreadid());
@@ -688,13 +591,9 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
#ifdef TSRM_WIN32
DeleteCriticalSection(mutexp);
free(mutexp);
#elif defined(GNUPTH)
free(mutexp);
#elif defined(PTHREADS)
#else
pthread_mutex_destroy(mutexp);
free(mutexp);
#elif defined(TSRM_ST)
st_mutex_destroy(mutexp);
#endif
}
#ifdef THR_DEBUG
@@ -713,15 +612,8 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
#ifdef TSRM_WIN32
EnterCriticalSection(mutexp);
return 0;
#elif defined(GNUPTH)
if (pth_mutex_acquire(mutexp, 0, NULL)) {
return 0;
}
return -1;
#elif defined(PTHREADS)
#else
return pthread_mutex_lock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_lock(mutexp);
#endif
}/*}}}*/
@@ -736,15 +628,8 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
#ifdef TSRM_WIN32
LeaveCriticalSection(mutexp);
return 0;
#elif defined(GNUPTH)
if (pth_mutex_release(mutexp)) {
return 0;
}
return -1;
#elif defined(PTHREADS)
#else
return pthread_mutex_unlock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_unlock(mutexp);
#endif
}/*}}}*/
@@ -755,12 +640,8 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
TSRM_API int tsrm_sigmask(int how, const sigset_t *set, sigset_t *oldset)
{/*{{{*/
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Changed sigmask in thread: %ld", tsrm_thread_id()));
/* TODO: add support for other APIs */
#ifdef PTHREADS
return pthread_sigmask(how, set, oldset);
#else
return sigprocmask(how, set, oldset);
#endif
return pthread_sigmask(how, set, oldset);
}/*}}}*/
#endif
@@ -796,7 +677,7 @@ TSRM_API void *tsrm_set_shutdown_handler(tsrm_shutdown_func_t shutdown_handler)
* Debug support
*/
#if TSRM_DEBUG
#ifdef TSRM_DEBUG
int tsrm_error(int level, const char *format, ...)
{/*{{{*/
if (level<=tsrm_error_level) {
@@ -817,11 +698,11 @@ int tsrm_error(int level, const char *format, ...)
#endif
void tsrm_error_set(int level, char *debug_filename)
void tsrm_error_set(int level, const char *debug_filename)
{/*{{{*/
tsrm_error_level = level;
#if TSRM_DEBUG
#ifdef TSRM_DEBUG
if (tsrm_error_file!=stderr) { /* close files opened earlier */
fclose(tsrm_error_file);
}
@@ -842,6 +723,29 @@ TSRM_API void *tsrm_get_ls_cache(void)
return tsrm_tls_get();
}/*}}}*/
/* Returns offset of tsrm_ls_cache slot from Thread Control Block address */
TSRM_API size_t tsrm_get_ls_cache_tcb_offset(void)
{/*{{{*/
#if defined(__APPLE__) && defined(__x86_64__)
// TODO: Implement support for fast JIT ZTS code ???
return 0;
#elif defined(__x86_64__) && defined(__GNUC__)
size_t ret;
asm ("movq _tsrm_ls_cache@gottpoff(%%rip),%0"
: "=r" (ret));
return ret;
#elif defined(__i386__) && defined(__GNUC__)
size_t ret;
asm ("leal _tsrm_ls_cache@ntpoff,%0"
: "=r" (ret));
return ret;
#else
return 0;
#endif
}/*}}}*/
TSRM_API uint8_t tsrm_is_main_thread(void)
{/*{{{*/
return in_main_thread;
@@ -854,16 +758,10 @@ TSRM_API uint8_t tsrm_is_shutdown(void)
TSRM_API const char *tsrm_api_name(void)
{/*{{{*/
#if defined(GNUPTH)
return "GNU Pth";
#elif defined(PTHREADS)
return "POSIX Threads";
#elif defined(TSRM_ST)
return "State Threads";
#elif defined(TSRM_WIN32)
#ifdef TSRM_WIN32
return "Windows Threads";
#else
return "Unknown";
return "POSIX Threads";
#endif
}/*}}}*/
+21 -45
View File
@@ -44,14 +44,8 @@ typedef uintptr_t tsrm_uintptr_t;
# ifndef TSRM_INCLUDE_FULL_WINDOWS_HEADERS
# define WIN32_LEAN_AND_MEAN
# endif
# include <windows.h>
# include <shellapi.h>
#elif defined(GNUPTH)
# include <pth.h>
#elif defined(PTHREADS)
#else
# include <pthread.h>
#elif defined(TSRM_ST)
# include <st.h>
#endif
#if SIZEOF_SIZE_T == 4
@@ -68,15 +62,9 @@ typedef int ts_rsrc_id;
#ifdef TSRM_WIN32
# define THREAD_T DWORD
# define MUTEX_T CRITICAL_SECTION *
#elif defined(GNUPTH)
# define THREAD_T pth_t
# define MUTEX_T pth_mutex_t *
#elif defined(PTHREADS)
#else
# define THREAD_T pthread_t
# define MUTEX_T pthread_mutex_t *
#elif defined(TSRM_ST)
# define THREAD_T st_thread_t
# define MUTEX_T st_mutex_t
#endif
#include <signal.h>
@@ -91,12 +79,12 @@ extern "C" {
#endif
/* startup/shutdown */
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename);
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, const char *debug_filename);
TSRM_API void tsrm_shutdown(void);
/* environ lock API */
TSRM_API void tsrm_env_lock();
TSRM_API void tsrm_env_unlock();
TSRM_API void tsrm_env_lock(void);
TSRM_API void tsrm_env_unlock(void);
/* allocates a new thread-safe-resource id */
TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor);
@@ -127,7 +115,7 @@ typedef void (*tsrm_shutdown_func_t)(void);
TSRM_API int tsrm_error(int level, const char *format, ...);
TSRM_API void tsrm_error_set(int level, char *debug_filename);
TSRM_API void tsrm_error_set(int level, const char *debug_filename);
/* utility functions */
TSRM_API THREAD_T tsrm_thread_id(void);
@@ -143,13 +131,8 @@ TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_th
TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler);
TSRM_API void *tsrm_set_shutdown_handler(tsrm_shutdown_func_t shutdown_handler);
/* these 3 APIs should only be used by people that fully understand the threading model
* used by PHP/Zend and the selected SAPI. */
TSRM_API void *tsrm_new_interpreter_context(void);
TSRM_API void *tsrm_set_interpreter_context(void *new_ctx);
TSRM_API void tsrm_free_interpreter_context(void *context);
TSRM_API void *tsrm_get_ls_cache(void);
TSRM_API size_t tsrm_get_ls_cache_tcb_offset(void);
TSRM_API uint8_t tsrm_is_main_thread(void);
TSRM_API uint8_t tsrm_is_shutdown(void);
TSRM_API const char *tsrm_api_name(void);
@@ -160,11 +143,21 @@ TSRM_API const char *tsrm_api_name(void);
# define TSRM_TLS __thread
#endif
#ifndef __has_attribute
# define __has_attribute(x) 0
#endif
#if !__has_attribute(tls_model)
# define TSRM_TLS_MODEL_ATTR
#elif __PIC__
# define TSRM_TLS_MODEL_ATTR __attribute__((tls_model("initial-exec")))
#else
# define TSRM_TLS_MODEL_ATTR __attribute__((tls_model("local-exec")))
#endif
#define TSRM_SHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)+1)
#define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1)
#define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx
#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_get_ls_cache()
#define TSRMG(id, type, element) (TSRMG_BULK(id, type)->element)
#define TSRMG_BULK(id, type) ((type) (*((void ***) tsrm_get_ls_cache()))[TSRM_UNSHUFFLE_RSRC_ID(id)])
#define TSRMG_FAST(offset, type, element) (TSRMG_FAST_BULK(offset, type)->element)
@@ -174,18 +167,11 @@ TSRM_API const char *tsrm_api_name(void);
#define TSRMG_BULK_STATIC(id, type) ((type) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(id)])
#define TSRMG_FAST_STATIC(offset, type, element) (TSRMG_FAST_BULK_STATIC(offset, type)->element)
#define TSRMG_FAST_BULK_STATIC(offset, type) ((type) (((char*) TSRMLS_CACHE)+(offset)))
#define TSRMLS_CACHE_EXTERN() extern TSRM_TLS void *TSRMLS_CACHE;
#define TSRMLS_CACHE_DEFINE() TSRM_TLS void *TSRMLS_CACHE = NULL;
#define TSRMLS_CACHE_EXTERN() extern TSRM_TLS void *TSRMLS_CACHE TSRM_TLS_MODEL_ATTR;
#define TSRMLS_CACHE_DEFINE() TSRM_TLS void *TSRMLS_CACHE TSRM_TLS_MODEL_ATTR = NULL;
#define TSRMLS_CACHE_UPDATE() TSRMLS_CACHE = tsrm_get_ls_cache()
#define TSRMLS_CACHE _tsrm_ls_cache
/* BC only */
#define TSRMLS_D void
#define TSRMLS_DC
#define TSRMLS_C
#define TSRMLS_CC
#define TSRMLS_FETCH()
#ifdef __cplusplus
}
#endif
@@ -195,10 +181,6 @@ TSRM_API const char *tsrm_api_name(void);
#define tsrm_env_lock()
#define tsrm_env_unlock()
#define TSRMLS_FETCH()
#define TSRMLS_FETCH_FROM_CTX(ctx)
#define TSRMLS_SET_CTX(ctx)
#define TSRMG_STATIC(id, type, element)
#define TSRMLS_CACHE_EXTERN()
#define TSRMLS_CACHE_DEFINE()
@@ -207,12 +189,6 @@ TSRM_API const char *tsrm_api_name(void);
#define TSRM_TLS
/* BC only */
#define TSRMLS_D void
#define TSRMLS_DC
#define TSRMLS_C
#define TSRMLS_CC
#endif /* ZTS */
#endif /* TSRM_H */
-74
View File
@@ -1,43 +1,5 @@
dnl This file contains TSRM specific autoconf macros.
dnl
dnl TSRM_CHECK_PTH
dnl
AC_DEFUN([TSRM_CHECK_PTH],[
AC_MSG_CHECKING(for GNU Pth)
PTH_PREFIX="`$1 --prefix`"
if test -z "$PTH_PREFIX"; then
AC_MSG_RESULT(Please check your Pth installation)
fi
CPPFLAGS="$CPPFLAGS `$1 --cflags`"
LDFLAGS="$LDFLAGS `$1 --ldflags`"
LIBS="$LIBS `$1 --libs`"
AC_DEFINE(GNUPTH, 1, [Whether you use GNU Pth])
AC_MSG_RESULT(yes - installed in $PTH_PREFIX)
])
dnl
dnl TSRM_CHECK_ST
dnl
AC_DEFUN([TSRM_CHECK_ST],[
if test -r "$1/include/st.h"; then
CPPFLAGS="$CPPFLAGS -I$1/include"
LDFLAGS="$LDFLAGS -L$1/lib"
elif test -r "$1/st.h"; then
CPPFLAGS="$CPPFLAGS -I$1"
LDFLAGS="$LDFLAGS -L$1"
fi
AC_CHECK_HEADERS(st.h,[],[
AC_MSG_ERROR([Sorry[,] I was unable to locate the State Threads header file. Please specify the prefix using --with-tsrm-st=/prefix])
])
LIBS="$LIBS -lst"
AC_MSG_CHECKING(for SGI's State Threads)
AC_MSG_RESULT(yes)
AC_DEFINE(TSRM_ST, 1, [ ])
])
dnl
dnl TSRM_CHECK_PTHREADS
dnl
@@ -53,39 +15,3 @@ AC_DEFINE(PTHREADS, 1, Whether to use Pthreads)
AC_MSG_CHECKING(for POSIX threads)
AC_MSG_RESULT(yes)
])
dnl
dnl TSRM_THREADS_CHECKS
dnl
dnl For the thread implementations, we always use --with-* to maintain
dnl consistency.
dnl
AC_DEFUN([TSRM_THREADS_CHECKS],[
AC_ARG_WITH([tsrm-pth],
[AS_HELP_STRING([[--with-tsrm-pth[=pth-config]]],
[Use GNU Pth])],
[TSRM_PTH=$withval],
[TSRM_PTH=no])
AC_ARG_WITH([tsrm-st],
[AS_HELP_STRING([--with-tsrm-st],
[Use SGI's State Threads])],
[TSRM_ST=$withval],
[TSRM_ST=no])
AC_ARG_WITH([tsrm-pthreads],
[AS_HELP_STRING([--with-tsrm-pthreads],
[Use POSIX threads (default)])],
[TSRM_PTHREADS=$withval],
[TSRM_PTHREADS=yes])
test "$TSRM_PTH" = "yes" && TSRM_PTH=pth-config
if test "$TSRM_PTH" != "no"; then
TSRM_CHECK_PTH($TSRM_PTH)
elif test "$TSRM_ST" != "no"; then
TSRM_CHECK_ST($TSRM_ST)
elif test "$TSRM_PTHREADS" != "no"; then
TSRM_CHECK_PTHREADS
fi
])
+4 -8
View File
@@ -1,6 +1,4 @@
/*
+----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
@@ -105,7 +103,7 @@ TSRM_API void tsrm_win32_shutdown(void)
#endif
}/*}}}*/
char * tsrm_win32_get_path_sid_key(const char *pathname, size_t pathname_len, size_t *key_len)
const char * tsrm_win32_get_path_sid_key(const char *pathname, size_t pathname_len, size_t *key_len)
{/*{{{*/
PSID pSid = TWG(impersonation_token_sid);
char *ptcSid = NULL;
@@ -445,7 +443,7 @@ TSRM_API FILE *popen(const char *command, const char *type)
return popen_ex(command, type, NULL, NULL);
}/*}}}*/
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env)
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, const char *env)
{/*{{{*/
FILE *stream = NULL;
int fno, type_len, read, mode;
@@ -480,12 +478,12 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
return NULL;
}
cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /c ")+2);
cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /s /c ")+2);
if (!cmd) {
return NULL;
}
sprintf(cmd, "%s /c \"%s\"", TWG(comspec), command);
sprintf(cmd, "%s /s /c \"%s\"", TWG(comspec), command);
cmdw = php_win32_cp_any_to_w(cmd);
if (!cmdw) {
free(cmd);
@@ -771,7 +769,6 @@ TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf)
}
}/*}}}*/
#if HAVE_UTIME
static zend_always_inline void UnixTimeToFileTime(time_t t, LPFILETIME pft) /* {{{ */
{
// Note that LONGLONG is a 64-bit value
@@ -826,4 +823,3 @@ TSRM_API int win32_utime(const char *filename, struct utimbuf *buf) /* {{{ */
}
/* }}} */
#endif
#endif
+3 -7
View File
@@ -1,6 +1,4 @@
/*
+----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
@@ -21,9 +19,7 @@
#include "TSRM.h"
#include <windows.h>
#if HAVE_UTIME
# include <sys/utime.h>
#endif
#include <sys/utime.h>
#include "win32/ipc.h"
struct ipc_perm {
@@ -93,12 +89,12 @@ TSRMLS_CACHE_EXTERN()
#define SHM_RND FILE_MAP_WRITE
#define SHM_REMAP FILE_MAP_COPY
char * tsrm_win32_get_path_sid_key(const char *pathname, size_t pathname_len, size_t *key_len);
const char * tsrm_win32_get_path_sid_key(const char *pathname, size_t pathname_len, size_t *key_len);
TSRM_API void tsrm_win32_startup(void);
TSRM_API void tsrm_win32_shutdown(void);
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env);
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, const char *env);
TSRM_API FILE *popen(const char *command, const char *type);
TSRM_API int pclose(FILE *stream);
TSRM_API int tsrm_win32_access(const char *pathname, int mode);
+723 -733
View File
File diff suppressed because it is too large. Load diff
+102 -278
View File
@@ -1,31 +1,23 @@
PHP 7.4 INTERNALS UPGRADE NOTES
PHP 8.0 INTERNALS UPGRADE NOTES
1. Internal API changes
a. php_sys_symlink() and php_sys_link()
b. zend_lookup_class_ex() and zend_fetch_class_by_name()
c. Function/property/class flags
d. Removed zend_check_private()
e. php_win32_error_to_msg() memory management
f. get_properties_for() handler / Z_OBJDEBUG_P
g. Required object handlers
h. Immutable classes and op_arrays
i. php_fgetcsv() and php_fputcsv()
j. Removed add_get_assoc_*() and add_get_index_*()
k. Class declaration opcodes
l. HASH_FLAG_INITIALIZED
m. write_property return value
n. Assignments to references
o. ZEND_COMPILE_EXTENDED_INFO split
p. ZEND_EXT_FCALL_BEGIN can access arguments
q. ZEND_COMPILE_IGNORE_USER_FUNCTIONS and ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS
r. TSRM environment locking
s. Typed references support
t. Exceptions thrown by string conversions.
u. Removed uint and ulong typedefs
v. Compound assignment opcodes
w. APACHE symbol removed
x. php_error_docref0() renamed to php_error_docref()
y. Stream wrapper read/write ops
a. Object Handlers API
b. ZEND_OVERLOADED_FUNCTION and corresponding call_method() object handler
c. TSRM changes
d. get() and set() object handlers
e. zend_parse_parameters 'L' specifier
f. Arginfo argument types
g. zend_free_op type and should_free argument of zend_get_zval_ptr()
h. zend_value_error()
i. get_closure() object handler
j. compare_objects() and compare() object handlers
k. The 'I' length modifier
l. Some VM instructions switched to IS_TMP_VAR result instead of IS_VAR
m. All internal functions must have arginfo
n. zend_hash_sort compare function signature change
o. cast_object() object handler is now required
p. ARG_COUNT() macro removed
q. GC_COLLECTABLE flag
2. Build system changes
a. Abstract
@@ -33,295 +25,127 @@ PHP 7.4 INTERNALS UPGRADE NOTES
c. Windows build system changes
3. Module changes
a. ext/xml
b. ext/hash
========================
1. Internal API changes
========================
a. php_sys_symlink() and php_sys_link() portability macros have been
added, which behave like POSIX's symlink() and link(), respectively, on
POSIX compliant systems and on Windows.
a. Object Handlers API and some related functions, e.g. zend_call_method() and
zend_objects_clone_obj() were changed to receive zend_object* instead of
zval* and zend_string* instead of zval* for property names.
b. zend_lookup_class_ex() and zend_fetch_class_by_name() prototypes were
changed to accept optional lower-case class name as zend_string*,
instead of zval*.
b. ZEND_OVERLOADED_FUNCTION and corresponding call_method() object handler
were removed. ZEND_INTERNAL_FUNCTION with ZEND_ACC_CALL_VIA_HANDLER and
defined "handler" callback should be used instead. This "handler" callback
should also take care about function cleanup. See ext/zend_test/test.c
for example.
c. Function/property/class flags changes
- ZEND_ACC_IMPLEMENTED_ABSTRACT is removed (it was used only internally
during inheritance).
- ZEND_ACC_IMPLICIT_PUBLIC is removed (it was used only for reflection)
- ZEND_ACC_SHADOW property flag is removed. Instead of creating shadow
clone, now we use the same private property_info, and should also
check property_info->ce (in the same way as with methods).
- ZEND_ACC_ANON_BOUND is replaced with ZEND_ACC_LINKED. This flag is set
not only during anonymous classes declaration, but also during any
run-time or compile-time class declaration.
- ZEND_ACC_NO_RT_ARENA renamed into ZEND_ACC_HEAP_RT_CACHE. Now it's used
not only for closures, but also for pseudo-main op_arrays.
- ZEND_ACC_... flags are re-numbered.
c. The following things have been removed from TSRM:
- TSRMLS_DC
- TSRMLS_D
- TSRMLS_CC
- TSRMLS_C
- TSRMLS_FETCH
- TSRMLS_FETCH_FROM_CTX
- TSRMLS_SET_CTX
- tsrm_new_interpreter_context
- tsrm_set_interpreter_context
- tsrm_free_interpreter_context
- support for GNUPTH, SGI ST, and BETHREADS
d. zend_check_private() is removed. Use (func->common.scope == scope) instead.
d. The get() and set() object handlers have been removed. The get() handler
can generally be replaced with cast_object(). Some uses of set() may be
replaced by do_operation(). If set() was used to overload direct
assignments using "=", then this is no longer supported and the
functionality should be provided in some other way (for example, as
modification of an object property).
e. Pointers returned by php_win32_error_to_msg() have to be freed using
php_win32_error_msg_free(). Same regarding php_win_err() vs.
php_win_err_free().
e. The zend_parse_parameters 'L' specifier and the Z_PARAM_STRICT_LONG()
family of macros have been removed. Use 'l' and Z_PARAM_LONG() instead,
which, despite the confusing name, actually have stricter input validation.
f. A new, optional object handler with the signature
f. Arginfo argument types for internal functions are no longer checked.
Instead type checks should be performed using the zend_parse_parameters()
or ZEND_PARSE_PARAMETERS_*() APIs.
HashTable *get_properties_for(zval *obj, zend_prop_purpose purpose)
g. zend_free_op type and "should_free" argument of zend_get_zval_ptr() were
removed. It's possible to get the old "should_free" value using the
following code.
has been introduced, where zend_prop_purpose (currently) takes one of:
zval *ret = zend_get_zval_ptr(opline, opline->op1_type, &opline->op1,
execute_data, BP_VAR_R);
zval *should_free = (op_type & (IS_TMP_VAR|IS_VAR)) ? ret : NULL;
ZEND_PROP_PURPOSE_DEBUG // var_dump etc.
ZEND_PROP_PURPOSE_ARRAY_CAST // (array) $obj
ZEND_PROP_PURPOSE_SERIALIZE // "O"-format serialization (__wakeup)
ZEND_PROP_PURPOSE_VAR_EXPORT // var_export (__set_state)
ZEND_PROP_PURPOSE_JSON // json_encode
h. Added the zend_value_error() function, which is intended to be used
to raise ValueError when inappropriate argument values are passed
to functions.
The handler returns a non-null HashTable with increased refcounted, and
the return value must be released using zend_release_properties().
i. get_closure() object handlers now accept an additional zend_bool parameter
`check_only`. If it is true, the handler is called to check whether the
object is callable; in this case the handler should not throw an exception.
This handler serves the same general function as get_properties(), but
provides more control over different property uses, while also making
it possible to return a temporary property table.
j. compare_objects() handler was removed. Extensions should use compare() object
handler instead and check if both arguments are objects and have the same
compare handler, using ZEND_COMPARE_OBJECTS_FALLBACK() macro.
k. The 'I' length modifier, used to denote 32 and 64bit integer from the custom
snprintf and spprintf implementations has been removed.
Use the ZEND_LONG_FMT, ZEND_ULONG_FMT and ZEND_XLONG_FMT macros defined in
php-src/Zend/zend_long.h
get_properties() is still used in cases where none of the above purposes
apply, but overloading get_properties() is generally discouraged. If you
want to provide purposes for general usage rather than just debugging or
serialization, please prefer using properly declared properties.
The 'v' format from the custom snprintf and spprintf implementations has
been removed. Use the standard 's' format instead.
get_debug_info() is superseded by get_properties_for() with the
ZEND_PROP_PURPOSE_DEBUG purpose, but remains available for backwards-
compatibility reasons. However, while it is fine to define this handler,
it should never be directly called by consuming code.
l. Some VM instructions switched to IS_TMP_VAR result instead of IS_VAR.
Actually, all assignments (ZEND_ASSIGN, ZEND_ASSIGN_DIM, ZEND_ASSIGN_OBJ,
ZEND_ASSIGN_STATIC_PROP), all compound assignments (ZEND_ASSIGN_OP,
ZEND_ASSIGN_DIM_OP, ZEND_ASSIGN_OBJ_OP, ZEND_ASSIGN_STATIC_PROP_OP) and all
pre increments/decrements (ZEND_PRE_INC, ZEND_PRE_DEC, ZEND_PRE_INC_OBJ
ZEND_PRE_DEC_OBJ, ZEND_PRE_INC_STATIC_PROP ZEND_PRE_DEC_STATIC_PROP).
The Z_OBJDEBUG_P macro has been removed. It should be replaced by calls to
zend_get_properties_for() with the ZEND_PROP_PURPOSE_DEBUG purpose:
m. All internal functions and methods are now required to specify arginfo
information, otherwise warnings will be thrown on startup.
// OLD
int is_temp;
HashTable *ht = Z_OBJDEBUG_P(obj, is_temp);
// ...
if (is_temp) {
zend_hash_destroy(ht);
FREE_HASHTABLE(ht);
}
n. The zend_hash_sort and zend_hash_minmax APIs now accept a comparison
function with the following signature:
// NEW
HashTable *ht = zend_get_properties_for(obj, ZEND_PROP_PURPOSE_DEBUG);
// ...
zend_release_properties(ht);
typedef int (*bucket_compare_func_t)(Bucket *a, Bucket *b);
g. The following object handlers are now required (must be non-NULL):
Previously compare_func_t was used, which accepted void pointers.
* free_obj
* dtor_obj
* read_property
* write_property
* read_dimension
* write_dimension
* get_property_ptr_ptr
* has_property
* unset_property
* has_dimension
* unset_dimension
* get_properties
* get_method
* get_constructor
* get_class_name
* get_gc
o. The cast_object() handler is now required, i.e. must be non-null. You can
indicate that casting is not supported by always returning FAILURE.
It is recommended to initialize object handler structures by copying the
std object handlers and only overwriting those you want to change.
p. The ARG_COUNT() macro has been removed use ZEND_NUM_ARGS() instead.
h. Opcache may make classes and op_arrays immutable. Such classes are marked
by ZEND_ACC_IMMUTABLE flag, they are not going to be copied from opcache
shared memory to process memory and must not be modified at all.
Few related data structures were changed to allow addressing mutable data
structures from immutable ones. This access is implemented through
ZEND_MAP_PTR... abstraction macros and, basically, uses additional level of
indirection. op_array->run_time_cache, op_array->static_variables_ptr and
class_entry->static_members_table now have to be accessed through
ZEND_MAP_PTR... macros.
It's also not allowed to change op_array->reserved[] handles of immutable
op_arrays. Instead, now you have to reserve op_array handle using
zend_get_op_array_extension_handle() during MINIT and access its value
using ZEND_OP_ARRAY_EXTENSION(op_array, handle).
i. The type of the escape parameter of php_fgetcsv() and php_fputcsv() has
been changed from char to int. This allows to pass the new constant macro
PHP_CSV_NO_ESCAPE to this parameter, to disable PHP's proprietary escape
mechanism.
j. add_get_assoc_*() and add_get_index_*() are removed. Use add_assoc*(),
add_index*() or zend_hash_*() API functions instead.
k. Complex class declaration opcodes ZEND_ADD_INTERFACE, ZEND_ADD_TRAIT,
ZEND_BIND_TRAITS and ZEND_VERIFY_ABSTRACT_CLASS were removed. Information
about interfaces and traits is kept in zend_class_entry structure and
actual linked performed by ZEND_DECLARE_...CLASS... opcode(s).
Linked classes have ZEND_ACC_LINKED flag set.
l. HASH_FLAG_INITIALIZED was reverted into HASH_FLAG_UNINITIALIZED. Special
HT_IS_INITIALIZED() and HT_INVALIDATE() macro were introduced to hide
implementation details.
m. The write_property() object handler now returns the assigned value (after
possible type coercions) rather than void. For extensions, it should
usually be sufficient to return whatever was passed as the argument.
n. Assignments to references now need to ensure that they respect property
types that affect the reference. This means that references should no
longer be directly assigned to, and instead a set of specialized macros of
the form ZEND_TRY_ASSIGN* needs to be used. You can find detailed porting
instructions as well as a compatibility shim in the wiki:
https://wiki.php.net/rfc/typed_properties_v2#assignments_to_references
o. ZEND_COMPILE_EXTENDED_INFO has been split into:
ZEND_COMPILE_EXTENDED_FCALL and ZEND_COMPILE_EXTENDED_STMT
This allows tooling to choose between profiling and debugging behaviour
ZEND_COMPILE_EXTENDED_INFO remains and preserves behaviour.
p. ZEND_EXT_BEGIN_FCALL is emitted after arguments are sent, this means
that handlers may access arguments.
q. ZEND_COMPILE_IGNORE_USER_FUNCTIONS and ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS
are respected by zend_get_call_op such that when set, the only possible
call opcodes are ZEND_DO_FCALL and ZEND_DO_FCALL_BY_NAME, previously they
were ignored by zend_get_call_op.
r. TSRM adds tsrm_env_lock() and tsrm_env_unlock() for ZTS:
code that may change environ and may run concurrently with user code in ZTS
is expected to use this exclusion API to maintain as much safety as
reasonable. This results in "thread safe" getenv/putenv in Windows and
Unix, however functions that may read the environment without exclusion
still exist, for example:
- setlocale
- mktime
- tzset
The above is not an exhaustive list of such functions, while getenv/putenv
will behave as if they are safe, care should still be taken in
multi-threaded environments.
s. Correct support for typed properties requires the use of new macros to
assign values to references. For more information see
https://wiki.php.net/rfc/typed_properties_v2#impact_on_extensions.
t. convert_to_string() and zval_get_string() are now more likely to result in
an exception. For instructions on how to gracefully handle this see
https://wiki.php.net/rfc/tostring_exceptions#extension_guidelines.
u. The typedefs uint and ulong are no longer guaranteed to be available, and
have to be replaced with standard types.
v. Compound assignment opcodes were changed. Instead of ZEND_ASSIGN_ADD (and
others) with 0, ZEND_ASSIGN_DIM, ZEND_ASSIGN_OBJ or
ZEND_ASSIGN_STATIC_PROP in extended value, now we use ZEND_ASSIGN_OP,
ZEND_ASSIGN_DIM_OP, ZEND_ASSIGN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP with
ZEND_ADD (or other) in extended_value.
w. APACHE symbol has been removed and is no longer defined.
x. php_error_docref0() has been removed and renamed to php_error_docref().
y. The read and write operations of php_stream_ops now return ssize_t, with
negative values indicating an error.
q. GC_COLLECTABLE flag was inverted into GC_NOT_COLLECTABLE.
Assignments to GC_TYPE_INFO() might need to be changed to properly
set the value of the GC_NOT_COLLECTABLE flag.
========================
2. Build system changes
========================
a. Abstract
- The hash extension is now always available, meaning the --enable-hash
configure argument has been removed.
- The filter extension no longer exposes the --with-pcre-dir configure
argument and therefore allows shared builds with ./configure for Unix
builds.
- Symbols HAVE_DATE, HAVE_REFLECTION, and HAVE_SPL have been removed. It
should be considered to have these extensions always available.
- Removed unused build time symbols: PHP_ADA_INCLUDE, PHP_ADA_LFLAGS,
PHP_ADA_LIBS, PHP_APACHE_INCLUDE, PHP_APACHE_TARGET, PHP_FHTTPD_INCLUDE,
PHP_FHTTPD_LIB, PHP_FHTTPD_TARGET, PHP_CFLAGS, PHP_DBASE_LIB,
PHP_BUILD_DEBUG, PHP_GDBM_INCLUDE, PHP_IBASE_INCLUDE, PHP_IBASE_LFLAGS,
PHP_IBASE_LIBS, PHP_IFX_INCLUDE, PHP_IFX_LFLAGS, PHP_IFX_LIBS,
PHP_INSTALL_IT, PHP_IODBC_INCLUDE, PHP_IODBC_LFLAGS, PHP_IODBC_LIBS,
PHP_MSQL_LFLAGS, PHP_MSQL_INCLUDE, PHP_MSQL_LFLAGS, PHP_MSQL_LIBS,
PHP_MYSQL_INCLUDE, PHP_MYSQL_LIBS, PHP_MYSQL_TYPE, PHP_OCI8_SHARED_LIBADD,
PHP_ORACLE_SHARED_LIBADD, PHP_ORACLE_DIR, PHP_ORACLE_VERSION,
PHP_PGSQL_INCLUDE, PHP_PGSQL_LFLAGS, PHP_PGSQL_LIBS, PHP_SOLID_INCLUDE,
PHP_SOLID_LIBS, PHP_EMPRESS_INCLUDE, PHP_EMPRESS_LIBS, PHP_SYBASE_INCLUDE,
PHP_SYBASE_LFLAGS, PHP_SYBASE_LIBS, PHP_DBM_TYPE, PHP_DBM_LIB,
PHP_LDAP_LFLAGS, PHP_LDAP_INCLUDE, PHP_LDAP_LIBS.
- Removed unused symbols: HAVE_CURL_EASY_STRERROR, HAVE_CURL_MULTI_STRERROR,
HAVE_MPIR, HAVE_MBSTR_CN, HAVE_MBSTR_JA, HAVE_MBSTR_KR, HAVE_MBSTR_RU,
HAVE_MBSTR_TW.
- Symbol HAVE_HASH_EXT is removed and is no longer defined. It should be
considered to have hash extension always available since PHP 7.4.
- Symbol HAVE_PCRE is removed and is no longer defined. It should be
considered to have pcre extension always available since PHP 7.4.
- Symbol HAVE_LOCALE_H has been removed and is no longer defined.
b. Unix build system changes
- Added --ini-path and --ini-dir options to php-config.
- configure --help now also outputs --program-suffix and --program-prefix
information by using the Autoconf AC_ARG_PROGRAM macro.
- Obsolescent macros AC_FUNC_VPRINTF and AC_FUNC_UTIME_NULL have been
removed. Symbols HAVE_VPRINTF and HAVE_UTIME_NULL are no longer defined
since they are not needed on the current systems.
- Local PHP m4 unused or obsolete macros have been removed:
PHP_TARGET_RDYNAMIC, PHP_SOLARIS_PIC_WEIRDNESS, PHP_SYS_LFS,
PHP_AC_BROKEN_SPRINTF, PHP_EXTENSION, PHP_DECLARED_TIMEZONE,
PHP_CHECK_TYPES, PHP_CHECK_64BIT, PHP_READDIR_R_TYPE,
PHP_SETUP_KERBEROS.
- Local PHP_TM_GMTOFF m4 macro replaced with Autoconf's AC_CHECK_MEMBERS.
The HAVE_TM_GMTOFF symbol is replaced with HAVE_STRUCT_TM_TM_GMTOFF and
HAVE_TM_ZONE symbol is replaced with HAVE_STRUCT_TM_TM_ZONE.
- new --enable-rtld-now build option allow to switch dlopen behavior
from RTLD_LAZY to RTLD_NOW
- Minimum Bison version is 3.0+ for generating parser files.
- PHP_PROG_BISON macro now takes two optional arguments - minimum required
version and excluded versions that aren't supported.
- PHP_PROG_RE2C is not called in the generated configure.ac for extensions
anymore and now takes one optional argument - minimum required version.
- with-pcre-valgrind and with-valgrind are merged, and valgrind detected by
pkgconfig
- Removed unused AC_PROG_CC_C_O check and the NO_MINUS_C_MINUS_O symbol.
- Obsolescant checks for headers and functions that are part of C89 have
been removed. The following symbols are therefore no longer defined by the
PHP build system at the configure step and shouldn't be used anymore:
HAVE_SETLOCALE, HAVE_LOCALECONV, HAVE_STRSTR, HAVE_STRTOL, HAVE_STRBRK,
HAVE_PERROR, HAVE_STRFTIME, HAVE_TZNAME, HAVE_STDARG_H, HAVE_STRING_H,
HAVE_STDLIB_H, HAVE_SYS_VARARGS_H, HAVE_ASSERT_H, HAVE_SYS_DIR_H,
TM_IN_SYS_TIME, HAVE_STRTOD, HAVE_STRCOLL, HAVE_ERRNO_H, HAVE_MEMCPY,
HAVE_SNPRINTF, HAVE_STDIO_H, HAVE_STRPBRK, HAVE_TIME_H, HAVE_LIMITS_H,
HAVE_STRTOUL, HAVE_SYS_NDIR_H, HAVE_SYS_TIMES_H, PHP_HAVE_STDINT_TYPES,
HAVE_SIGNAL_H, HAVE_STRERROR.
- Removed unused check for dev/arandom and the HAVE_DEV_ARANDOM symbol.
- Remove unused functions checks: HAVE_MBSINIT, HAVE_MEMPCPY, HAVE_SETPGID,
HAVE_STRPNCPY, HAVE_STRTOULL, HAVE_VSNPRINTF, HAVE_CUSERID, HAVE_LRAND48,
HAVE_RANDOM, HAVE_SRAND48, HAVE_SRANDOM, HAVE_STRDUP, HAVE_GCVT,
HAVE_ISASCII, HAVE_LINK, HAVE_LOCKF, HAVE_SOCKOPT, HAVE_SETVBUF, HAVE_SIN,
HAVE_TEMPNAM.
- Unused check for struct cmsghdr and symbol HAVE_CMSGHDR have been removed.
- Unused ApplicationServices/ApplicationServices.h headers check and
HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H symbol have been removed.
- PHP_DEBUG_MACRO macro has been removed.
- PHP_CHECK_CONFIGURE_OPTIONS macro has been removed. Default Autoconf's
--enable-option-checking=fatal option can be used in the configure step
to enable error when invalid options are used.
- Removed unused check and symbols HAVE_SHM_MMAP_ZERO, HAVE_SHM_MMAP_FILE.
- Removed unused check and symbol MISSING_MSGHDR_MSGFLAGS.
1. --enable-maintainer-zts is renamed --enable-zts for parity with Windows
and as recognition that ZTS is not a "maintainer" or experimental feature.
c. Windows build system changes
. Visual Studio 2019 is utilized for the Windows builds
. Removed unused defined symbol HAVE_LIBBIND.
- The configuration option --enable-crt-debug has been removed. The VC
debug heap can now be enabled for debug builds by setting the environment
variable PHP_WIN32_DEBUG_HEAP to a non-negative number before PHP process
startup.
========================
3. Module changes
========================
a. ext/xml
- The public (internal) API of the ext/xml extension has been removed. All
functions and structures are private to the extension now.
b. ext/hash
- The hash extension is now always available, allowing extensions to rely
on its functionality to be available without compile time checks.
+2 -2
View File
@@ -13,7 +13,7 @@ $(srcdir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
# Tweak zendparse to be exported through ZEND_API. This has to be revisited once
# bison supports foreign skeletons and that bison version is used. Read
# https://git.savannah.gnu.org/cgit/bison.git/tree/data/README.md for more.
@$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
@$(YACC) $(YFLAGS) -v -d $(srcdir)/zend_language_parser.y -o $@
@$(SED) -e 's,^int zendparse\(.*\),ZEND_API int zendparse\1,g' < $@ \
> $@.tmp && \
mv $@.tmp $@
@@ -27,7 +27,7 @@ $(srcdir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(srcdir)/zend_ini_parser.h: $(srcdir)/zend_ini_parser.c
$(srcdir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
@$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
$(YACC) $(YFLAGS) -v -d $(srcdir)/zend_ini_parser.y -o $@
$(srcdir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
@(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --no-generation-date --case-inverted -cbdFt Zend/zend_ini_scanner_defs.h -oZend/zend_ini_scanner.c Zend/zend_ini_scanner.l)
+14 -159
View File
@@ -146,9 +146,7 @@ _LT_AC_TRY_DLOPEN_SELF([
])
dnl Checks for library functions.
AC_CHECK_FUNCS(getpid kill finite sigsetjmp)
AC_CHECK_DECLS([isfinite, isnan, isinf], [], [], [[#include <math.h>]])
AC_CHECK_FUNCS(getpid kill sigsetjmp)
ZEND_CHECK_FLOAT_PRECISION
@@ -157,6 +155,7 @@ AC_MSG_CHECKING(whether double cast to long preserves least significant bits)
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <limits.h>
#include <stdlib.h>
int main()
{
@@ -191,23 +190,14 @@ dnl LIBZEND_OTHER_CHECKS
dnl
AC_DEFUN([LIBZEND_OTHER_CHECKS],[
AC_ARG_ENABLE([maintainer-zts],
[AS_HELP_STRING([--enable-maintainer-zts],
[Enable thread safety - for code maintainers only!!])],
[ZEND_MAINTAINER_ZTS=$enableval],
[ZEND_MAINTAINER_ZTS=no])
AC_ARG_ENABLE([inline-optimization],
[AS_HELP_STRING([--disable-inline-optimization],
[If building zend_execute.lo fails, try this switch])],
[ZEND_INLINE_OPTIMIZATION=$enableval],
[ZEND_INLINE_OPTIMIZATION=yes])
AC_ARG_ENABLE([zts],
[AS_HELP_STRING([--enable-zts],
[Enable thread safety])],
[ZEND_ZTS=$enableval],
[ZEND_ZTS=no])
AC_MSG_CHECKING(whether to enable thread-safety)
AC_MSG_RESULT($ZEND_MAINTAINER_ZTS)
AC_MSG_CHECKING(whether to enable inline optimization for GCC)
AC_MSG_RESULT($ZEND_INLINE_OPTIMIZATION)
AC_MSG_RESULT($ZEND_ZTS)
AC_MSG_CHECKING(whether to enable Zend debugging)
AC_MSG_RESULT($ZEND_DEBUG)
@@ -222,26 +212,19 @@ else
AC_DEFINE(ZEND_DEBUG,0,[ ])
fi
test -n "$GCC" && CFLAGS="$CFLAGS -Wall -Wno-strict-aliasing"
test -n "$GCC" && CFLAGS="$CFLAGS -Wall -Wextra -Wno-strict-aliasing -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-sign-compare"
dnl Check if compiler supports -Wno-clobbered (only GCC)
AX_CHECK_COMPILE_FLAG([-Wno-clobbered], CFLAGS="$CFLAGS -Wno-clobbered", , [-Werror])
test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
if test "$ZEND_ZTS" = "yes"; then
AC_DEFINE(ZTS,1,[ ])
CFLAGS="$CFLAGS -DZTS"
fi
changequote({,})
if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
INLINE_CFLAGS=`echo $ac_n "$CFLAGS $ac_c" | sed s/-O[0-9s]*//`
else
INLINE_CFLAGS="$CFLAGS"
fi
changequote([,])
AC_C_INLINE
AC_SUBST(INLINE_CFLAGS)
AC_MSG_CHECKING(target system is Darwin)
if echo "$target" | grep "darwin" > /dev/null; then
AC_DEFINE([DARWIN], 1, [Define if the target system is darwin])
@@ -256,6 +239,7 @@ AC_MSG_CHECKING(for MM alignment and log values)
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <stdlib.h>
typedef union _mm_align_test {
void *ptr;
@@ -385,135 +369,6 @@ else
fi
AC_MSG_RESULT($ZEND_GCC_GLOBAL_REGS)
dnl Check if atof() accepts NAN.
AC_CACHE_CHECK(whether atof() accepts NAN, ac_cv_atof_accept_nan,[
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
#ifdef HAVE_ISNAN
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
#else
#define zend_isnan(a) 0
#endif
int main(int argc, char** argv)
{
return zend_isnan(atof("NAN")) ? 0 : 1;
}
]])],[
ac_cv_atof_accept_nan=yes
],[
ac_cv_atof_accept_nan=no
],[
ac_cv_atof_accept_nan=no
])])
if test "$ac_cv_atof_accept_nan" = "yes"; then
AC_DEFINE([HAVE_ATOF_ACCEPTS_NAN], 1, [whether atof() accepts NAN])
fi
dnl Check if atof() accepts INF.
AC_CACHE_CHECK(whether atof() accepts INF, ac_cv_atof_accept_inf,[
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
#ifdef HAVE_ISINF
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
#define zend_isinf(a) (((a)==INFINITY)?1:0)
#elif defined(HAVE_FPCLASS)
#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
#else
#define zend_isinf(a) 0
#endif
int main(int argc, char** argv)
{
return zend_isinf(atof("INF")) && zend_isinf(atof("-INF")) ? 0 : 1;
}
]])],[
ac_cv_atof_accept_inf=yes
],[
ac_cv_atof_accept_inf=no
],[
ac_cv_atof_accept_inf=no
])])
if test "$ac_cv_atof_accept_inf" = "yes"; then
AC_DEFINE([HAVE_ATOF_ACCEPTS_INF], 1, [whether atof() accepts INF])
fi
dnl Check if HUGE_VAL == INF.
AC_CACHE_CHECK(whether HUGE_VAL == INF, ac_cv_huge_val_inf,[
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
#ifdef HAVE_ISINF
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
#define zend_isinf(a) (((a)==INFINITY)?1:0)
#elif defined(HAVE_FPCLASS)
#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
#else
#define zend_isinf(a) 0
#endif
int main(int argc, char** argv)
{
return zend_isinf(HUGE_VAL) ? 0 : 1;
}
]])],[
ac_cv_huge_val_inf=yes
],[
ac_cv_huge_val_inf=no
],[
ac_cv_huge_val_inf=yes
])])
dnl This is the most probable fallback so we assume yes in case of cross compile.
if test "$ac_cv_huge_val_inf" = "yes"; then
AC_DEFINE([HAVE_HUGE_VAL_INF], 1, [whether HUGE_VAL == INF])
fi
dnl Check if HUGE_VAL + -HUGEVAL == NAN.
AC_CACHE_CHECK(whether HUGE_VAL + -HUGEVAL == NAN, ac_cv_huge_val_nan,[
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
#ifdef HAVE_ISNAN
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
#else
#define zend_isnan(a) 0
#endif
int main(int argc, char** argv)
{
#if defined(__sparc__) && !(__GNUC__ >= 3)
/* prevent bug #27830 */
return 1;
#else
return zend_isnan(HUGE_VAL + -HUGE_VAL) ? 0 : 1;
#endif
}
]])],[
ac_cv_huge_val_nan=yes
],[
ac_cv_huge_val_nan=no
],[
ac_cv_huge_val_nan=yes
])])
dnl This is the most probable fallback so we assume yes in case of cross compile.
if test "$ac_cv_huge_val_nan" = "yes"; then
AC_DEFINE([HAVE_HUGE_VAL_NAN], 1, [whether HUGE_VAL + -HUGEVAL == NAN])
fi
dnl Check whether __cpuid_count is available.
AC_CACHE_CHECK(whether __cpuid_count is available, ac_cv_cpuid_count_available, [
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+10 -10
View File
@@ -4,39 +4,39 @@ func_num_args() tests
<?php
function test1() {
var_dump(func_num_args());
var_dump(func_num_args());
}
function test2($a) {
var_dump(func_num_args());
var_dump(func_num_args());
}
function test3($a, $b) {
var_dump(func_num_args());
var_dump(func_num_args());
}
test1();
test2(1);
try {
test2();
test2();
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
echo "Exception: " . $e->getMessage() . "\n";
}
test3(1,2);
call_user_func("test1");
try {
call_user_func("test3", 1);
call_user_func("test3", 1);
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
echo "Exception: " . $e->getMessage() . "\n";
}
call_user_func("test3", 1, 2);
class test {
static function test1($a) {
var_dump(func_num_args());
}
static function test1($a) {
var_dump(func_num_args());
}
}
test::test1(1);
+76 -56
View File
@@ -4,98 +4,118 @@ func_get_arg() tests
<?php
function test1() {
var_dump(func_get_arg(-10));
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
try {
var_dump(func_get_arg(-10));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(func_get_arg(0));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(func_get_arg(1));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
}
function test2($a) {
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
try {
var_dump(func_get_arg(0));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(func_get_arg(1));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
}
function test3($a, $b) {
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
var_dump(func_get_arg(2));
try {
var_dump(func_get_arg(0));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(func_get_arg(1));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(func_get_arg(2));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
}
test1();
test1(10);
test2(1);
try {
test2();
test2();
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
echo "Exception: " . $e->getMessage() . "\n";
}
test3(1,2);
call_user_func("test1");
try {
call_user_func("test3", 1);
call_user_func("test3", 1);
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
echo "Exception: " . $e->getMessage() . "\n";
}
call_user_func("test3", 1, 2);
class test {
static function test1($a) {
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
}
static function test1($a) {
try {
var_dump(func_get_arg(0));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(func_get_arg(1));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
}
}
test::test1(1);
var_dump(func_get_arg(1));
try {
var_dump(func_get_arg(1));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
echo "Done\n";
?>
--EXPECTF--
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 0 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
bool(false)
func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
func_get_arg(): Argument 0 not passed to function
func_get_arg(): Argument 1 not passed to function
func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
int(10)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
func_get_arg(): Argument 1 not passed to function
int(1)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
func_get_arg(): Argument 1 not passed to function
Exception: Too few arguments to function test2(), 0 passed in %s002.php on line %d and exactly 1 expected
int(1)
int(2)
Warning: func_get_arg(): Argument 2 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 0 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Exception: Too few arguments to function test3(), 1 passed in %s002.php on line %d and exactly 2 expected
func_get_arg(): Argument 2 not passed to function
func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
func_get_arg(): Argument 0 not passed to function
func_get_arg(): Argument 1 not passed to function
Exception: Too few arguments to function test3(), 1 passed in %s on line %d and exactly 2 expected
int(1)
int(2)
Warning: func_get_arg(): Argument 2 not passed to function in %s on line %d
bool(false)
func_get_arg(): Argument 2 not passed to function
int(1)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Called from the global scope - no function context in %s on line %d
bool(false)
func_get_arg(): Argument 1 not passed to function
func_get_arg() cannot be called from the global scope
Done
+17 -16
View File
@@ -4,45 +4,49 @@ func_get_args() tests
<?php
function test1() {
var_dump(func_get_args());
var_dump(func_get_args());
}
function test2($a) {
var_dump(func_get_args());
var_dump(func_get_args());
}
function test3($a, $b) {
var_dump(func_get_args());
var_dump(func_get_args());
}
test1();
test1(10);
test2(1);
try {
test2();
test2();
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
echo "Exception: " . $e->getMessage() . "\n";
}
test3(1,2);
call_user_func("test1");
try {
call_user_func("test3", 1);
call_user_func("test3", 1);
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
echo "Exception: " . $e->getMessage() . "\n";
}
call_user_func("test3", 1, 2);
class test {
static function test1($a) {
var_dump(func_get_args());
}
static function test1($a) {
var_dump(func_get_args());
}
}
test::test1(1);
var_dump(func_get_args());
echo "Done\n";
try {
var_dump(func_get_args());
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
?>
--EXPECTF--
array(0) {
@@ -75,7 +79,4 @@ array(1) {
[0]=>
int(1)
}
Warning: func_get_args(): Called from the global scope - no function context in %s on line %d
bool(false)
Done
func_get_args() cannot be called from the global scope
+7 -10
View File
@@ -3,23 +3,20 @@ strncmp() tests
--FILE--
<?php
var_dump(strncmp("", ""));
var_dump(strncmp("", "", 100));
var_dump(strncmp("aef", "dfsgbdf", -1));
try {
var_dump(strncmp("aef", "dfsgbdf", -1));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
var_dump(strncmp("fghjkl", "qwer", 0));
var_dump(strncmp("qwerty", "qwerty123", 6));
var_dump(strncmp("qwerty", "qwerty123", 7));
echo "Done\n";
?>
--EXPECTF--
Warning: strncmp() expects exactly 3 parameters, 2 given in %s on line %d
NULL
--EXPECT--
int(0)
Warning: Length must be greater than or equal to 0 in %s on line %d
bool(false)
strncmp(): Argument #3 ($len) must be greater than or equal to 0
int(0)
int(0)
int(-1)
Done
+1 -4
View File
@@ -3,7 +3,6 @@ strcasecmp() tests
--FILE--
<?php
var_dump(strcasecmp(""));
var_dump(strcasecmp("", ""));
var_dump(strcasecmp("aef", "dfsgbdf"));
var_dump(strcasecmp("qwe", "qwer"));
@@ -14,9 +13,7 @@ var_dump(strcasecmp("01", "01"));
echo "Done\n";
?>
--EXPECTF--
Warning: strcasecmp() expects exactly 2 parameters, 1 given in %s on line %d
NULL
--EXPECT--
int(0)
int(-3)
int(-1)
+8 -10
View File
@@ -3,8 +3,12 @@ strncasecmp() tests
--FILE--
<?php
var_dump(strncasecmp(""));
var_dump(strncasecmp("", "", -1));
try {
var_dump(strncasecmp("", "", -1));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
var_dump(strncasecmp("aef", "dfsgbdf", 0));
var_dump(strncasecmp("aef", "dfsgbdf", 10));
var_dump(strncasecmp("qwe", "qwer", 3));
@@ -13,14 +17,9 @@ var_dump(strncasecmp("qwErtY", "qwer", 7));
var_dump(strncasecmp("q123", "Q123", 3));
var_dump(strncasecmp("01", "01", 1000));
echo "Done\n";
?>
--EXPECTF--
Warning: strncasecmp() expects exactly 3 parameters, 1 given in %s on line %d
NULL
Warning: Length must be greater than or equal to 0 in %s on line %d
bool(false)
--EXPECT--
strncasecmp(): Argument #3 ($len) must be greater than or equal to 0
int(0)
int(-3)
int(0)
@@ -28,4 +27,3 @@ int(0)
int(2)
int(0)
int(0)
Done
-65
View File
@@ -1,65 +0,0 @@
--TEST--
each() tests
--FILE--
<?php
var_dump(each());
$var = 1;
var_dump(each($var));
$var = "string";
var_dump(each($var));
$var = array(1,2,3);
var_dump(each($var));
$var = array("a"=>1,"b"=>2,"c"=>3);
var_dump(each($var));
$a = array(1);
$a [] =&$a[0];
var_dump(each($a));
echo "Done\n";
?>
--EXPECTF--
Warning: each() expects exactly 1 parameter, 0 given in %s on line %d
NULL
Deprecated: The each() function is deprecated. This message will be suppressed on further calls in %s on line %d
Warning: Variable passed to each() is not an array or object in %s on line %d
NULL
Warning: Variable passed to each() is not an array or object in %s on line %d
NULL
array(4) {
[1]=>
int(1)
["value"]=>
int(1)
[0]=>
int(0)
["key"]=>
int(0)
}
array(4) {
[1]=>
int(1)
["value"]=>
int(1)
[0]=>
string(1) "a"
["key"]=>
string(1) "a"
}
array(4) {
[1]=>
int(1)
["value"]=>
int(1)
[0]=>
int(0)
["key"]=>
int(0)
}
Done
+9 -16
View File
@@ -3,12 +3,13 @@ define() tests
--FILE--
<?php
var_dump(define());
var_dump(define("TRUE"));
var_dump(define("TRUE", 1));
var_dump(define("TRUE", 1, array(1)));
try {
var_dump(define(array(1,2,3,4,5), 1));
} catch (TypeError $e) {
echo "TypeError: ", $e->getMessage(), "\n";
}
var_dump(define(array(1,2,3,4,5), 1));
var_dump(define("TRUE", 1));
var_dump(define(" ", 1));
var_dump(define("[[[", 2));
var_dump(define("test const", 3));
@@ -24,18 +25,10 @@ var_dump(constant("test const"));
echo "Done\n";
?>
--EXPECTF--
Warning: define() expects at least 2 parameters, 0 given in %s on line %d
NULL
TypeError: define(): Argument #1 ($constant_name) must be of type string, array given
Warning: define() expects at least 2 parameters, 1 given in %s on line %d
NULL
bool(true)
Warning: define() expects parameter 3 to be bool, array given in %s on line %d
NULL
Warning: define() expects parameter 1 to be string, array given in %s on line %d
NULL
Notice: Constant TRUE already defined in %s on line %d
bool(false)
bool(true)
bool(true)
bool(true)
+15 -19
View File
@@ -4,21 +4,22 @@ get_class() tests
<?php
class foo {
function bar () {
var_dump(get_class());
}
function bar () {
var_dump(get_class());
}
function testNull ()
{
var_dump(get_class(null));
try {
var_dump(get_class(null));
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
}
}
class foo2 extends foo {
}
foo::bar();
foo2::bar();
$f1 = new foo;
$f2 = new foo2;
@@ -26,7 +27,11 @@ $f1->bar();
$f2->bar();
var_dump(get_class());
var_dump(get_class("qwerty"));
try {
var_dump(get_class("qwerty"));
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
var_dump(get_class($f1));
var_dump(get_class($f2));
@@ -36,22 +41,13 @@ $f1->testNull();
echo "Done\n";
?>
--EXPECTF--
Deprecated: Non-static method foo::bar() should not be called statically in %s on line %d
string(3) "foo"
Deprecated: Non-static method foo::bar() should not be called statically in %s on line %d
string(3) "foo"
string(3) "foo"
string(3) "foo"
Warning: get_class() called without object from outside a class in %s on line %d
bool(false)
Warning: get_class() expects parameter 1 to be object, string given in %s on line %d
bool(false)
get_class(): Argument #1 ($object) must be of type object, string given
string(3) "foo"
string(4) "foo2"
Warning: get_class() expects parameter 1 to be object, null given in %s on line %d
bool(false)
get_class(): Argument #1 ($object) must be of type object, null given
Done
+7 -7
View File
@@ -4,19 +4,19 @@ get_parent_class() tests
<?php
interface i {
function test();
function test();
}
class foo implements i {
function test() {
var_dump(get_parent_class());
}
function test() {
var_dump(get_parent_class());
}
}
class bar extends foo {
function test_bar() {
var_dump(get_parent_class());
}
function test_bar() {
var_dump(get_parent_class());
}
}
$bar = new bar;
+45 -35
View File
@@ -4,27 +4,25 @@ property_exists() tests
<?php
class foo {
public $pp1 = 1;
private $pp2 = 2;
protected $pp3 = 3;
public $pp1 = 1;
private $pp2 = 2;
protected $pp3 = 3;
function bar() {
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
}
function bar() {
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
}
}
class bar extends foo {
function test() {
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
}
function test() {
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
}
}
var_dump(property_exists());
var_dump(property_exists(""));
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
@@ -41,23 +39,40 @@ var_dump(property_exists($foo,"pp2"));
var_dump(property_exists($foo,"pp3"));
var_dump(property_exists($foo,"nonexistent"));
var_dump(property_exists($foo,""));
var_dump(property_exists(array(),"test"));
var_dump(property_exists(1,"test"));
var_dump(property_exists(true,"test"));
try {
var_dump(property_exists(array(), "test"));
} catch (\TypeError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(property_exists(1, "test"));
} catch (\TypeError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(property_exists(3.14, "test"));
} catch (\TypeError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(property_exists(true, "test"));
} catch (\TypeError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(property_exists(null, "test"));
} catch (\TypeError $e) {
echo $e->getMessage() . \PHP_EOL;
}
$foo->bar();
$bar = new bar;
$bar->test();
echo "Done\n";
?>
--EXPECTF--
Warning: property_exists() expects exactly 2 parameters, 0 given in %s on line %d
NULL
Warning: property_exists() expects exactly 2 parameters, 1 given in %s on line %d
NULL
--EXPECT--
bool(true)
bool(true)
bool(true)
@@ -71,19 +86,14 @@ bool(true)
bool(true)
bool(false)
bool(false)
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
NULL
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
NULL
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
NULL
property_exists(): Argument #1 ($object_or_class) must be of type object|string, array given
property_exists(): Argument #1 ($object_or_class) must be of type object|string, int given
property_exists(): Argument #1 ($object_or_class) must be of type object|string, float given
property_exists(): Argument #1 ($object_or_class) must be of type object|string, bool given
property_exists(): Argument #1 ($object_or_class) must be of type object|string, null given
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
Done
+1 -8
View File
@@ -6,10 +6,8 @@ class_exists() tests
class foo {
}
var_dump(class_exists());
var_dump(class_exists("qwerty"));
var_dump(class_exists(""));
var_dump(class_exists(array()));
var_dump(class_exists("test", false));
var_dump(class_exists("foo", false));
var_dump(class_exists("foo"));
@@ -18,14 +16,9 @@ var_dump(class_exists("stdClass"));
echo "Done\n";
?>
--EXPECTF--
Warning: class_exists() expects at least 1 parameter, 0 given in %s on line %d
NULL
--EXPECT--
bool(false)
bool(false)
Warning: class_exists() expects parameter 1 to be string, array given in %s on line %d
NULL
bool(false)
bool(true)
bool(true)
+1 -8
View File
@@ -6,10 +6,8 @@ interface_exists() tests
interface foo {
}
var_dump(interface_exists());
var_dump(interface_exists("qwerty"));
var_dump(interface_exists(""));
var_dump(interface_exists(array()));
var_dump(interface_exists("test", false));
var_dump(interface_exists("foo", false));
var_dump(interface_exists("foo"));
@@ -18,14 +16,9 @@ var_dump(interface_exists("stdClass"));
echo "Done\n";
?>
--EXPECTF--
Warning: interface_exists() expects at least 1 parameter, 0 given in %s on line %d
NULL
--EXPECT--
bool(false)
bool(false)
Warning: interface_exists() expects parameter 1 to be string, array given in %s on line %d
NULL
bool(false)
bool(true)
bool(true)
-10
View File
@@ -8,13 +8,9 @@ var_dump(get_included_files());
include(__DIR__."/014.inc");
var_dump(get_included_files());
var_dump(get_included_files(1,1));
include_once(__DIR__."/014.inc");
var_dump(get_included_files());
var_dump(get_included_files(1));
include(__DIR__."/014.inc");
var_dump(get_included_files());
@@ -31,18 +27,12 @@ array(2) {
[1]=>
string(%d) "%s"
}
Warning: get_included_files() expects exactly 0 parameters, 2 given in %s on line %d
NULL
array(2) {
[0]=>
string(%d) "%s"
[1]=>
string(%d) "%s"
}
Warning: get_included_files() expects exactly 0 parameters, 1 given in %s on line %d
NULL
array(2) {
[0]=>
string(%d) "%s"
+14 -18
View File
@@ -3,35 +3,31 @@ trigger_error() tests
--FILE--
<?php
var_dump(trigger_error());
var_dump(trigger_error("error"));
var_dump(trigger_error(array()));
var_dump(trigger_error("error", -1));
var_dump(trigger_error("error", 0));
try {
var_dump(trigger_error("error", -1));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(trigger_error("error", 0));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
var_dump(trigger_error("error", E_USER_WARNING));
var_dump(trigger_error("error", E_USER_DEPRECATED));
echo "Done\n";
?>
--EXPECTF--
Warning: trigger_error() expects at least 1 parameter, 0 given in %s on line %d
NULL
Notice: error in %s on line %d
bool(true)
Warning: trigger_error() expects parameter 1 to be string, array given in %s on line %d
NULL
Warning: Invalid error type specified in %s on line %d
bool(false)
Warning: Invalid error type specified in %s on line %d
bool(false)
trigger_error(): Argument #2 ($error_type) must be one of E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, or E_USER_DEPRECATED
trigger_error(): Argument #2 ($error_type) must be one of E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, or E_USER_DEPRECATED
Warning: error in %s on line %d
bool(true)
Deprecated: error in %s on line %d
bool(true)
Done
-23
View File
@@ -3,8 +3,6 @@ builtin functions tests
--FILE--
<?php
var_dump(get_resource_type());
var_dump(get_resource_type(""));
$fp = fopen(__FILE__, "r");
var_dump(get_resource_type($fp));
fclose($fp);
@@ -14,11 +12,9 @@ var_dump(gettype(get_loaded_extensions()));
var_dump(count(get_loaded_extensions()));
var_dump(gettype(get_loaded_extensions(true)));
var_dump(count(get_loaded_extensions(true)));
var_dump(get_loaded_extensions(true, true));
define("USER_CONSTANT", "test");
var_dump(get_defined_constants(true, true));
var_dump(gettype(get_defined_constants(true)));
var_dump(gettype(get_defined_constants()));
var_dump(count(get_defined_constants()));
@@ -29,11 +25,9 @@ function test () {
var_dump(gettype(get_defined_functions()));
var_dump(count(get_defined_functions()));
var_dump(get_declared_interfaces(true));
var_dump(gettype(get_declared_interfaces()));
var_dump(count(get_declared_interfaces()));
var_dump(get_extension_funcs());
var_dump(get_extension_funcs(true));
var_dump(gettype(get_extension_funcs("standard")));
var_dump(count(get_extension_funcs("standard")));
@@ -44,36 +38,19 @@ var_dump(count(get_extension_funcs("zend")));
echo "Done\n";
?>
--EXPECTF--
Warning: get_resource_type() expects exactly 1 parameter, 0 given in %s on line %d
NULL
Warning: get_resource_type() expects parameter 1 to be resource, string given in %s on line %d
NULL
string(6) "stream"
string(7) "Unknown"
string(5) "array"
int(%d)
string(5) "array"
int(%d)
Warning: get_loaded_extensions() expects at most 1 parameter, 2 given in %s on line %d
NULL
Warning: get_defined_constants() expects at most 1 parameter, 2 given in %s on line %d
NULL
string(5) "array"
string(5) "array"
int(%d)
string(5) "array"
int(%d)
Warning: get_declared_interfaces() expects exactly 0 parameters, 1 given in %s on line %d
NULL
string(5) "array"
int(%d)
Warning: get_extension_funcs() expects exactly 1 parameter, 0 given in %s on line %d
NULL
bool(false)
string(5) "array"
int(%d)
+7 -17
View File
@@ -3,11 +3,11 @@ constant() tests
--FILE--
<?php
var_dump(constant());
var_dump(constant("", ""));
var_dump(constant(""));
var_dump(constant(array()));
try {
var_dump(constant(""));
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
define("TEST_CONST", 1);
var_dump(constant("TEST_CONST"));
@@ -17,18 +17,8 @@ var_dump(constant("TEST_CONST2"));
echo "Done\n";
?>
--EXPECTF--
Warning: constant() expects exactly 1 parameter, 0 given in %s on line %d
NULL
Warning: constant() expects exactly 1 parameter, 2 given in %s on line %d
NULL
Warning: constant(): Couldn't find constant in %s on line %d
NULL
Warning: constant() expects parameter 1 to be string, array given in %s on line %d
NULL
--EXPECT--
Undefined constant ''
int(1)
string(4) "test"
Done
+109 -111
View File
@@ -243,7 +243,7 @@ var_dump( empty($point1->x) ); // expected: bool(true)
// unset all members and check
unset($point1->y);
unset($point1->lable);
// dump the objec to check that all variables are unset
// dump the object to check that all variables are unset
var_dump($point1);
var_dump( isset($point1) ); // expected: bool(ture)
var_dump( empty($point1) ); // expected: bool(false)
@@ -360,7 +360,6 @@ var_dump($global_var);
//Note: No error conditions relating to passing arguments can be tested
// because these are not functions but statements, it will result in syntax error.
?>
===DONE===
--EXPECTF--
*** Testing unset(), empty() & isset() with scalar variables ***
-- Iteration 1 --
@@ -368,7 +367,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -380,7 +379,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -392,7 +391,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -404,7 +403,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -416,7 +415,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -428,7 +427,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -440,7 +439,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -452,7 +451,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -464,7 +463,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -476,7 +475,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -488,7 +487,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -500,7 +499,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -512,7 +511,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -524,7 +523,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -536,7 +535,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -548,7 +547,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -560,7 +559,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -572,7 +571,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -584,7 +583,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -596,7 +595,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -608,7 +607,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -620,7 +619,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -632,7 +631,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -644,7 +643,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -656,7 +655,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -668,7 +667,7 @@ bool(true)
bool(true)
bool(false)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -680,7 +679,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: scalar_var in %s on line %d
Warning: Undefined variable $scalar_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -697,7 +696,7 @@ bool(true)
bool(true)
bool(true)
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -713,18 +712,18 @@ bool(true)
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -740,18 +739,18 @@ bool(true)
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -767,18 +766,18 @@ bool(true)
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -794,18 +793,18 @@ bool(true)
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -827,13 +826,13 @@ array(3) {
int(4)
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(3) {
[1]=>
@@ -851,13 +850,13 @@ array(2) {
int(4)
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(2) {
[2]=>
@@ -871,13 +870,13 @@ array(1) {
int(4)
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(1) {
[3]=>
@@ -887,18 +886,18 @@ array(1) {
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -918,13 +917,13 @@ array(2) {
float(5.6)
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(2) {
[1]=>
@@ -938,13 +937,13 @@ array(1) {
float(5.6)
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(1) {
[2]=>
@@ -954,18 +953,18 @@ array(1) {
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -983,13 +982,13 @@ array(1) {
string(3) "two"
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(1) {
[2]=>
@@ -999,18 +998,18 @@ array(1) {
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -1028,13 +1027,13 @@ array(1) {
string(2) "30"
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(1) {
["Age"]=>
@@ -1044,18 +1043,18 @@ array(1) {
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -1079,13 +1078,13 @@ array(4) {
string(0) ""
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(4) {
[1]=>
@@ -1107,13 +1106,13 @@ array(3) {
string(0) ""
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(3) {
["One"]=>
@@ -1131,13 +1130,13 @@ array(2) {
string(0) ""
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(2) {
[2]=>
@@ -1151,13 +1150,13 @@ array(1) {
string(0) ""
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(1) {
[""]=>
@@ -1167,18 +1166,18 @@ array(1) {
array(0) {
}
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(false)
Notice: Undefined variable: key_val in %s on line %d
Warning: Undefined variable $key_val in %s on line %d
bool(true)
array(0) {
}
Notice: Undefined variable: array_var in %s on line %d
Warning: Undefined variable $array_var in %s on line %d
NULL
bool(false)
bool(false)
@@ -1196,7 +1195,7 @@ bool(true)
bool(false)
bool(false)
Notice: Undefined variable: resource in %s on line %d
Warning: Undefined variable $resource in %s on line %d
NULL
-- Iteration 2 --
resource(%d) of type (stream)
@@ -1209,10 +1208,10 @@ bool(true)
bool(false)
bool(false)
Notice: Undefined variable: resource in %s on line %d
Warning: Undefined variable $resource in %s on line %d
NULL
Notice: Undefined variable: resources in %s on line %d
Warning: Undefined variable $resources in %s on line %d
NULL
bool(false)
bool(true)
@@ -1229,16 +1228,16 @@ object(Point)#%d (3) {
bool(true)
bool(false)
Notice: Undefined variable: lable in %s on line %d
Warning: Undefined variable $lable in %s on line %d
bool(false)
Notice: Undefined variable: lable in %s on line %d
Warning: Undefined variable $lable in %s on line %d
bool(true)
Notice: Undefined variable: lable in %s on line %d
Warning: Undefined variable $lable in %s on line %d
bool(false)
Notice: Undefined variable: lable in %s on line %d
Warning: Undefined variable $lable in %s on line %d
bool(true)
object(Point)#%d (3) {
["x"]=>
@@ -1263,7 +1262,7 @@ bool(false)
bool(false)
bool(true)
Notice: Undefined variable: point1 in %s on line %d
Warning: Undefined variable $point1 in %s on line %d
NULL
bool(false)
bool(true)
@@ -1293,7 +1292,7 @@ value of static_var before unset: 1
bool(true)
bool(false)
Notice: Undefined variable: static_var in %s on line %d
Warning: Undefined variable $static_var in %s on line %d
value of static_var after unset:
bool(false)
bool(true)
@@ -1302,7 +1301,7 @@ value of static_var before unset: 2
bool(true)
bool(false)
Notice: Undefined variable: static_var in %s on line %d
Warning: Undefined variable $static_var in %s on line %d
value of static_var after unset:
bool(false)
bool(true)
@@ -1311,7 +1310,7 @@ value of static_var before unset: 3
bool(true)
bool(false)
Notice: Undefined variable: static_var in %s on line %d
Warning: Undefined variable $static_var in %s on line %d
value of static_var after unset:
bool(false)
bool(true)
@@ -1330,4 +1329,3 @@ bool(false)
bool(false)
bool(true)
int(10)
===DONE===
+15 -20
View File
@@ -3,32 +3,27 @@ func_get_arg() invalid usage
--FILE--
<?php
var_dump(func_get_arg(1,2,3));
var_dump(func_get_arg(1));
var_dump(func_get_arg());
try {
var_dump(func_get_arg(1));
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
function bar() {
var_dump(func_get_arg(1));
var_dump(func_get_arg(1));
}
function foo() {
bar(func_get_arg(1));
bar(func_get_arg(1));
}
foo(1,2);
try {
foo(1,2);
} catch (\Error $e) {
echo $e->getMessage() . \PHP_EOL;
}
echo "Done\n";
?>
--EXPECTF--
Warning: func_get_arg() expects exactly 1 parameter, 3 given in %s on line %d
NULL
Warning: func_get_arg(): Called from the global scope - no function context in %s on line %d
bool(false)
Warning: func_get_arg() expects exactly 1 parameter, 0 given in %s on line %d
NULL
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Done
--EXPECT--
func_get_arg() cannot be called from the global scope
func_get_arg(): Argument 1 not passed to function
+6 -6
View File
@@ -1,19 +1,19 @@
--TEST--
Implementating abstracting methods and optional parameters
Implementing abstracting methods and optional parameters
--FILE--
<?php
abstract class Base
{
abstract function someMethod($param);
abstract function someMethod($param);
}
class Ext extends Base
{
function someMethod($param = "default")
{
echo $param, "\n";
}
function someMethod($param = "default")
{
echo $param, "\n";
}
}
$a = new Ext();
+8 -8
View File
@@ -10,20 +10,20 @@ print "\n";
class bar {
public function a() {
return "bar!";
}
public function a() {
return "bar!";
}
}
class foo {
public function test() {
print "foo!\n";
return new bar;
}
public function test() {
print "foo!\n";
return new bar;
}
}
function test() {
return new foo;
return new foo;
}
$a = 'test';
+16 -16
View File
@@ -15,43 +15,43 @@ var_dump($a->$b->{$c[1]});
?>
--EXPECTF--
Notice: Undefined variable: a in %s on line %d
Warning: Undefined variable $a in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
NULL
Notice: Undefined variable: a in %s on line %d
Warning: Undefined variable $a in %s on line %d
Notice: Undefined variable: c in %s on line %d
Warning: Undefined variable $c in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
NULL
Notice: Undefined variable: a in %s on line %d
Warning: Undefined variable $a in %s on line %d
int(1)
Notice: Undefined variable: a in %s on line %d
Warning: Undefined variable $a in %s on line %d
Notice: Undefined variable: b in %s on line %d
Warning: Undefined variable $b in %s on line %d
int(0)
Notice: Undefined variable: a in %s on line %d
Warning: Undefined variable $a in %s on line %d
NULL
Notice: Undefined variable: b in %s on line %d
Warning: Undefined variable $b in %s on line %d
int(1)
Notice: Trying to get property '1' of non-object in %s on line %d
Warning: Attempt to read property '1' on int in %s on line %d
NULL
Notice: Trying to get property '1' of non-object in %s on line %d
Warning: Attempt to read property '1' on int in %s on line %d
NULL
Notice: Undefined variable: c in %s on line %d
Warning: Undefined variable $c in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to get property '1' of non-object in %s on line %d
Warning: Attempt to read property '1' on int in %s on line %d
Notice: Trying to get property '' of non-object in %s on line %d
Warning: Attempt to read property '' on null in %s on line %d
NULL
+3 -3
View File
@@ -4,9 +4,9 @@ Testing dynamic calls
<?php
class foo {
static public function a() {
print "ok\n";
}
static public function a() {
print "ok\n";
}
}
$a = 'a';
+9 -6
View File
@@ -4,8 +4,8 @@ Trying assign value to property when an object is not returned in a function
<?php
class foo {
public function a() {
}
public function a() {
}
}
$test = new foo;
@@ -13,13 +13,16 @@ $test = new foo;
$test->a()->a;
print "ok\n";
$test->a()->a = 1;
try {
$test->a()->a = 1;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
print "ok\n";
?>
--EXPECTF--
Notice: Trying to get property 'a' of non-object in %s on line %d
Warning: Attempt to read property 'a' on null in %s on line %d
ok
Warning: Creating default object from empty value in %s on line %d
Attempt to assign property 'a' on null
ok
+1 -1
View File
@@ -20,7 +20,7 @@ bool(true)
Notice: Undefined offset: 2 in %s on line %d
Fatal error: Uncaught Error: Function name must be a string in %s:%d
Fatal error: Uncaught Error: Value of type null is not callable in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
+17 -17
View File
@@ -4,26 +4,26 @@ Overriding $this in catch and checking the object properties later.
<?php
class foo {
public $test = 0;
private $test_2 = 1;
protected $test_3 = 2;
public $test = 0;
private $test_2 = 1;
protected $test_3 = 2;
public function bar() {
try {
throw new Exception('foo');
} catch (Exception $this) {
var_dump($this);
}
public function bar() {
try {
throw new Exception('foo');
} catch (Exception $this) {
var_dump($this);
}
$this->baz();
}
$this->baz();
}
public function baz() {
foreach ($this as $k => $v) {
printf("'%s' => '%s'\n", $k, $v);
}
print "ok\n";
}
public function baz() {
foreach ($this as $k => $v) {
printf("'%s' => '%s'\n", $k, $v);
}
print "ok\n";
}
}
$test = new foo;
+31 -25
View File
@@ -9,52 +9,58 @@ echo $arr[1][2][3][4][5];
$arr[1][2][3][4][5]->foo;
$arr[1][2][3][4][5]->foo = 1;
try {
$arr[1][2][3][4][5]->foo = 1;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
$arr[][] = 2;
$arr[][]->bar = 2;
try {
$arr[][]->bar = 2;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
Notice: Undefined variable: arr in %s on line %d
Warning: Undefined variable $arr in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Undefined variable: arr in %s on line %d
Warning: Undefined variable $arr in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Undefined variable: arr in %s on line %d
Warning: Undefined variable $arr in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to access array offset on value of type null in %s on line %d
Warning: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to get property 'foo' of non-object in %s on line %d
Warning: Creating default object from empty value in %s on line %d
Warning: Creating default object from empty value in %s on line %d
Warning: Attempt to read property 'foo' on null in %s on line %d
Attempt to assign property 'foo' on null
Attempt to assign property 'bar' on null
+15 -15
View File
@@ -4,21 +4,21 @@ Testing multiples 'default:' in switch
<?php
switch (1) {
case 2:
print 'foo';
break;
case 3:
print 'bar';
break;
default:
print 1;
break;
default:
print 2;
break;
default:
print 3;
break;
case 2:
print 'foo';
break;
case 3:
print 'bar';
break;
default:
print 1;
break;
default:
print 2;
break;
default:
print 3;
break;
}
?>
+7 -9
View File
@@ -3,14 +3,12 @@ Trying to use lambda in array offset
--FILE--
<?php
$test[function(){}] = 1;
$a{function() { }} = 1;
try {
$test[function(){}] = 1;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
Warning: Illegal offset type in %s on line %d
Warning: Illegal offset type in %s on line %d
--EXPECT--
Illegal offset type
+7 -5
View File
@@ -3,10 +3,12 @@ Trying to use lambda as array key
--FILE--
<?php
var_dump(array(function() { } => 1));
try {
var_dump(array(function() { } => 1));
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
Warning: Illegal offset type in %s on line %d
array(0) {
}
--EXPECT--
Illegal offset type
+2 -2
View File
@@ -4,8 +4,8 @@ using multiple access modifiers (methods)
<?php
class test {
static public public static final public final function foo() {
}
static public public static final public final function foo() {
}
}
echo "Done\n";
+1 -1
View File
@@ -4,7 +4,7 @@ using multiple access modifiers (attributes)
<?php
class test {
static public public static final public final $var;
static public public static final public final $var;
}
echo "Done\n";
+1 -1
View File
@@ -4,7 +4,7 @@ using multiple access modifiers (classes)
<?php
final final class test {
function foo() {}
function foo() {}
}
echo "Done\n";
+2 -2
View File
@@ -4,8 +4,8 @@ using multiple access modifiers (abstract methods)
<?php
class test {
abstract abstract function foo() {
}
abstract abstract function foo() {
}
}
echo "Done\n";
+2 -2
View File
@@ -4,8 +4,8 @@ using multiple access modifiers (final methods)
<?php
class test {
final final function foo() {
}
final final function foo() {
}
}
echo "Done\n";
+2 -2
View File
@@ -4,8 +4,8 @@ using multiple access modifiers (static methods)
<?php
class test {
static static function foo() {
}
static static function foo() {
}
}
echo "Done\n";
+1 -1
View File
@@ -4,7 +4,7 @@ abstract final methods errmsg
<?php
class test {
final abstract function foo();
final abstract function foo();
}
echo "Done\n";
+3 -3
View File
@@ -6,13 +6,13 @@ Discussion: http://marc.info/?l=php-internals&m=120221184420957&w=2
<?php
class A {
static protected function f() {return 'A::f()';}
static protected function f() {return 'A::f()';}
}
class B1 extends A {
static protected function f() {return 'B1::f()';}
static protected function f() {return 'B1::f()';}
}
class B2 extends A {
static public function test() {echo B1::f();}
static public function test() {echo B1::f();}
}
B2::test();
+6 -6
View File
@@ -6,16 +6,16 @@ Discussion: http://marc.info/?l=php-internals&m=120221184420957&w=2
<?php
class A {
static protected function f() {return 'A::f()';}
static protected function f() {return 'A::f()';}
}
class B1 extends A {
static protected function f() {return 'B1::f()';}
static protected function f() {return 'B1::f()';}
}
class B2 extends A {
static public function test() {
var_dump(is_callable('B1::f'));
B1::f();
}
static public function test() {
var_dump(is_callable('B1::f'));
B1::f();
}
}
B2::test();
+9 -9
View File
@@ -4,24 +4,24 @@ Testing visibility of methods
<?php
class d {
private function test2() {
print "Bar\n";
}
private function test2() {
print "Bar\n";
}
}
abstract class a extends d {
public function test() {
$this->test2();
}
public function test() {
$this->test2();
}
}
abstract class b extends a {
}
class c extends b {
public function __construct() {
$this->test();
}
public function __construct() {
$this->test();
}
}
new c;
+18 -18
View File
@@ -4,25 +4,25 @@ __call() for private/protected methods
<?php
class A {
private $var1 = 'var1 value';
protected $var2 = 'var2 value';
private $var1 = 'var1 value';
protected $var2 = 'var2 value';
private function func1()
{
return "in func1";
}
protected function func2()
{
return "in func2";
}
public function __get($var)
{
return $this->$var;
}
public function __call($func, array $args = array())
{
return call_user_func_array(array($this, $func), $args);
}
private function func1()
{
return "in func1";
}
protected function func2()
{
return "in func2";
}
public function __get($var)
{
return $this->$var;
}
public function __call($func, array $args = array())
{
return call_user_func_array(array($this, $func), $args);
}
}
$a = new A();
+3 -3
View File
@@ -3,9 +3,9 @@ Trigger __call() in lieu of non visible methods when called via a callback.
--FILE--
<?php
class C {
protected function prot() { }
private function priv() { }
public function __call($name, $args) {
protected function prot() { }
private function priv() { }
public function __call($name, $args) {
echo "In __call() for method $name()\n";
}
}
+1 -1
View File
@@ -4,7 +4,7 @@ Prevent abstract and final in the same class declaration
<?php
final abstract class C {
private function priv() { }
private function priv() { }
}
?>
+4 -8
View File
@@ -9,9 +9,9 @@ $o = new stdclass;
$o->prop = "value";
try {
var_dump($a + $o);
var_dump($a + $o);
} catch (Error $e) {
echo "\nException: " . $e->getMessage() . "\n";
echo "\nException: " . $e->getMessage() . "\n";
}
$c = $a + $o;
@@ -20,13 +20,9 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Notice: Object of class stdClass could not be converted to number in %sadd_002.php on line %d
Exception: Unsupported operand types: array + stdClass
Exception: Unsupported operand types
Notice: Object of class stdClass could not be converted to number in %s on line %d
Fatal error: Uncaught Error: Unsupported operand types in %s:%d
Fatal error: Uncaught TypeError: Unsupported operand types: array + stdClass in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
+4 -8
View File
@@ -9,9 +9,9 @@ $o = new stdclass;
$o->prop = "value";
try {
var_dump($o + $a);
var_dump($o + $a);
} catch (Error $e) {
echo "\nException: " . $e->getMessage() . "\n";
echo "\nException: " . $e->getMessage() . "\n";
}
$c = $o + $a;
@@ -20,13 +20,9 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Notice: Object of class stdClass could not be converted to number in %sadd_003.php on line %d
Exception: Unsupported operand types: stdClass + array
Exception: Unsupported operand types
Notice: Object of class stdClass could not be converted to number in %s on line %d
Fatal error: Uncaught Error: Unsupported operand types in %s:%d
Fatal error: Uncaught TypeError: Unsupported operand types: stdClass + array in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
+4 -4
View File
@@ -6,9 +6,9 @@ adding numbers to arrays
$a = array(1,2,3);
try {
var_dump($a + 5);
var_dump($a + 5);
} catch (Error $e) {
echo "\nException: " . $e->getMessage() . "\n";
echo "\nException: " . $e->getMessage() . "\n";
}
$c = $a + 5;
@@ -17,9 +17,9 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Exception: Unsupported operand types
Exception: Unsupported operand types: array + int
Fatal error: Uncaught Error: Unsupported operand types in %s:%d
Fatal error: Uncaught TypeError: Unsupported operand types: array + int in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
+2 -2
View File
@@ -17,6 +17,6 @@ var_dump($c);
echo "Done\n";
?>
--EXPECT--
float(2834756759.1231)
float(2834756759.1231)
float(2834756759.123123)
float(2834756759.123123)
Done
+4 -8
View File
@@ -8,9 +8,9 @@ $a = array(1,2,3);
$s1 = "some string";
try {
var_dump($a + $s1);
var_dump($a + $s1);
} catch (Error $e) {
echo "\nException: " . $e->getMessage() . "\n";
echo "\nException: " . $e->getMessage() . "\n";
}
$c = $a + $s1;
@@ -19,13 +19,9 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Warning: A non-numeric value encountered in %s on line %d
Exception: Unsupported operand types: array + string
Exception: Unsupported operand types
Warning: A non-numeric value encountered in %s on line %d
Fatal error: Uncaught Error: Unsupported operand types in %s:%d
Fatal error: Uncaught TypeError: Unsupported operand types: array + string in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
@@ -0,0 +1,9 @@
--TEST--
Alternative offset syntax should emit E_COMPILE_ERROR in const expression
--FILE--
<?php
const FOO_COMPILE_ERROR = "BAR"{0};
var_dump(FOO_COMPILE_ERROR);
?>
--EXPECTF--
Fatal error: Array and string offset access syntax with curly braces is no longer supported in %s on line 2
@@ -0,0 +1,9 @@
--TEST--
Alternative offset syntax should emit E_COMPILE_ERROR outside const expression
--FILE--
<?php
$foo = 'BAR';
var_dump($foo{0});
?>
--EXPECTF--
Fatal error: Array and string offset access syntax with curly braces is no longer supported in %s on line 3
+3 -3
View File
@@ -5,9 +5,9 @@ Ensure proper inheritance with get_class(anon class instance) used via class_ali
class_alias(get_class(new class { protected $foo = 1; }), "AnonBase");
var_dump((new class extends AnonBase {
function getFoo() {
return $this->foo;
}
function getFoo() {
return $this->foo;
}
})->getFoo());
?>
--EXPECT--
+30
View File
@@ -0,0 +1,30 @@
--TEST--
Generated names for anonymous classes
--FILE--
<?php
namespace DeclaringNS {
class Test1 {}
interface Test2 {}
interface Test3 {}
}
namespace UsingNS {
function print_name(object $obj) {
echo strstr(get_class($obj), "\0", true), "\n";
}
print_name(new class {});
print_name(new class extends \DeclaringNS\Test1 {});
print_name(new class extends \DeclaringNS\Test1 implements \DeclaringNS\Test2 {});
print_name(new class implements \DeclaringNS\Test2 {});
print_name(new class implements \DeclaringNS\Test2, \DeclaringNS\Test3 {});
}
?>
--EXPECT--
class@anonymous
DeclaringNS\Test1@anonymous
DeclaringNS\Test1@anonymous
DeclaringNS\Test2@anonymous
DeclaringNS\Test2@anonymous
-54
View File
@@ -1,54 +0,0 @@
--TEST--
Testing calls to anonymous function
--FILE--
<?php
for ($i = 0; $i < 10; $i++) {
$a = create_function('', 'return '. $i .';');
var_dump($a());
$b = "\0lambda_". ($i + 1);
var_dump($b());
}
?>
--EXPECTF--
Deprecated: Function create_function() is deprecated in %s on line %d
int(0)
int(0)
Deprecated: Function create_function() is deprecated in %s on line %d
int(1)
int(1)
Deprecated: Function create_function() is deprecated in %s on line %d
int(2)
int(2)
Deprecated: Function create_function() is deprecated in %s on line %d
int(3)
int(3)
Deprecated: Function create_function() is deprecated in %s on line %d
int(4)
int(4)
Deprecated: Function create_function() is deprecated in %s on line %d
int(5)
int(5)
Deprecated: Function create_function() is deprecated in %s on line %d
int(6)
int(6)
Deprecated: Function create_function() is deprecated in %s on line %d
int(7)
int(7)
Deprecated: Function create_function() is deprecated in %s on line %d
int(8)
int(8)
Deprecated: Function create_function() is deprecated in %s on line %d
int(9)
int(9)
-19
View File
@@ -1,19 +0,0 @@
--TEST--
Testing anonymous function return as array key and accessing $GLOBALS
--FILE--
<?php
$test = create_function('$v', 'return $v;');
$arr = array(create_function('', 'return $GLOBALS["arr"];'), 2);
var_dump($arr[$test(1)]);
var_dump($arr[$test(0)]() == $arr);
?>
--EXPECTF--
Deprecated: Function create_function() is deprecated in %s on line %d
Deprecated: Function create_function() is deprecated in %s on line %d
int(2)
bool(true)
-16
View File
@@ -1,16 +0,0 @@
--TEST--
Using throw $var with anonymous function return
--FILE--
<?php
try {
$a = create_function('', 'return new Exception("test");');
throw $a();
} catch (Exception $e) {
var_dump($e->getMessage() == 'test');
}
?>
--EXPECTF--
Deprecated: Function create_function() is deprecated in %s on line %d
bool(true)
+31 -47
View File
@@ -7,53 +7,37 @@ function test(...$args) {
var_dump($args);
}
test(...null);
test(...42);
test(...new stdClass);
try {
test(...null);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
test(...42);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
test(...new stdClass);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
test(1, 2, 3, ..."foo", ...[4, 5]);
test(1, 2, 3, ...new StdClass, ...3.14, ...[4, 5]);
try {
test(1, 2, 3, ..."foo", ...[4, 5]);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
test(1, 2, 3, ...new StdClass, ...3.14, ...[4, 5]);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
Warning: Only arrays and Traversables can be unpacked in %s on line %d
array(0) {
}
Warning: Only arrays and Traversables can be unpacked in %s on line %d
array(0) {
}
Warning: Only arrays and Traversables can be unpacked in %s on line %d
array(0) {
}
Warning: Only arrays and Traversables can be unpacked in %s on line %d
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
}
Warning: Only arrays and Traversables can be unpacked in %s on line %d
Warning: Only arrays and Traversables can be unpacked in %s on line %d
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
}
--EXPECT--
Only arrays and Traversables can be unpacked
Only arrays and Traversables can be unpacked
Only arrays and Traversables can be unpacked
Only arrays and Traversables can be unpacked
Only arrays and Traversables can be unpacked
+5 -5
View File
@@ -3,17 +3,17 @@ Argument unpacking does not work with non-integer keys
--FILE--
<?php
function foo(...$args) {
var_dump($args);
var_dump($args);
}
function gen() {
yield 1.23 => 123;
yield "2.34" => 234;
yield 1.23 => 123;
yield "2.34" => 234;
}
try {
foo(...gen());
foo(...gen());
} catch (Error $ex) {
echo "Exception: " . $ex->getMessage() . "\n";
echo "Exception: " . $ex->getMessage() . "\n";
}
?>
+4 -4
View File
@@ -8,14 +8,14 @@ set_error_handler(function($errno, $errstr) {
});
try {
var_dump(...[1, 2, "foo" => 3, 4]);
var_dump(...[1, 2, "foo" => 3, 4]);
} catch (Error $ex) {
var_dump($ex->getMessage());
var_dump($ex->getMessage());
}
try {
var_dump(...new ArrayIterator([1, 2, "foo" => 3, 4]));
var_dump(...new ArrayIterator([1, 2, "foo" => 3, 4]));
} catch (Error $ex) {
var_dump($ex->getMessage());
var_dump($ex->getMessage());
}
?>
+31
View File
@@ -0,0 +1,31 @@
--TEST--
Test that there is no arginfo/zpp mismatch
--FILE--
<?php
foreach (get_defined_functions()["internal"] as $function) {
try {
@$function(null, null, null, null, null, null, null, null);
} catch (ArgumentCountError|Error) {
}
}
// var_dump() and debug_zval_dump() print all arguments
?>
--EXPECT--
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
+5 -5
View File
@@ -3,14 +3,14 @@ Bug #55719 (Argument restriction should come with a more specific error message)
--FILE--
<?php
Class Base {
public function &test($foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
}
public function &test($foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
}
}
class Sub extends Base {
public function &test() {
}
public function &test() {
}
}
?>
--EXPECTF--
Warning: Declaration of & Sub::test() should be compatible with & Base::test($foo, array $bar, $option = NULL, $extra = 'llllllllll...') in %sargument_restriction_001.php on line %d
Fatal error: Declaration of & Sub::test() must be compatible with & Base::test($foo, array $bar, $option = null, $extra = 'llllllllll...') in %s on line %d
+5 -5
View File
@@ -3,14 +3,14 @@ Bug #55719 (Argument restriction should come with a more specific error message)
--FILE--
<?php
Abstract Class Base {
public function test($foo, array &$bar, $option = NULL, $extra = 3.141592653589793238462643383279502884197169399375105 ) {
}
public function test($foo, array &$bar, $option = NULL, $extra = 3.141592653589793238462643383279502884197169399375105 ) {
}
}
class Sub extends Base {
public function test($foo, array &$bar) {
}
public function test($foo, array &$bar) {
}
}
?>
--EXPECTF--
Warning: Declaration of Sub::test($foo, array &$bar) should be compatible with Base::test($foo, array &$bar, $option = NULL, $extra = 3.1415926535898) in %sargument_restriction_002.php on line %d
Fatal error: Declaration of Sub::test($foo, array &$bar) must be compatible with Base::test($foo, array &$bar, $option = null, $extra = 3.1415926535898) in %s on line %d
+5 -5
View File
@@ -6,14 +6,14 @@ class Foo {
}
Abstract Class Base {
public function test(Foo $foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
}
public function test(Foo $foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
}
}
class Sub extends Base {
public function test() {
}
public function test() {
}
}
?>
--EXPECTF--
Warning: Declaration of Sub::test() should be compatible with Base::test(Foo $foo, array $bar, $option = NULL, $extra = 'llllllllll...') in %sargument_restriction_003.php on line %d
Fatal error: Declaration of Sub::test() must be compatible with Base::test(Foo $foo, array $bar, $option = null, $extra = 'llllllllll...') in %s on line %d
+3 -3
View File
@@ -6,12 +6,12 @@ class Foo {
}
Abstract Class Base {
abstract public function test(Foo $foo, array $bar, $option = NULL, $extra = 16777215) ;
abstract public function test(Foo $foo, array $bar, $option = NULL, $extra = 16777215) ;
}
class Sub extends Base {
public function test(Foo $foo, array $bar, $option = NULL, $extra = 0xffffff ) {
}
public function test(Foo $foo, array $bar, $option = NULL, $extra = 0xffffff ) {
}
}
?>
--EXPECT--
+2 -2
View File
@@ -3,8 +3,8 @@ Bug #55719 (Argument restriction should come with a more specific error message)
--FILE--
<?php
class Sub implements ArrayAccess {
public function offsetSet() {
}
public function offsetSet() {
}
}
?>
--EXPECTF--
+5 -5
View File
@@ -3,14 +3,14 @@ Bug #60174 (Notice when array in method prototype error)
--FILE--
<?php
Abstract Class Base {
public function test($foo, $extra = array("test")) {
}
public function test($foo, $extra = array("test")) {
}
}
class Sub extends Base {
public function test($foo, $extra) {
}
public function test($foo, $extra) {
}
}
?>
--EXPECTF--
Warning: Declaration of Sub::test($foo, $extra) should be compatible with Base::test($foo, $extra = Array) in %sargument_restriction_006.php on line %d
Fatal error: Declaration of Sub::test($foo, $extra) must be compatible with Base::test($foo, $extra = [...]) in %s on line %d
+6 -6
View File
@@ -2,12 +2,12 @@
Tests that array manipulation code is correctly dealing with copy on write and splitting on reference
--FILE--
<?php
$a=array();
$b=1;
$c=&$b;
$a[]=$b;
$b=2;
var_dump ($a);
$a=array();
$b=1;
$c=&$b;
$a[]=$b;
$b=2;
var_dump ($a);
?>
--EXPECT--
array(1) {
+3 -3
View File
@@ -4,12 +4,12 @@ Accept hashes being equal to zero
<?php
$hashes = [
"\x8e\x1a\x63\x0f\x61" => 32,
"\xf7\x17\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x6b\x03\x6a\x13\x63\x17\x6b\x1d\x67" => 64,
"\x8e\x1a\x63\x0f\x61" => 32,
"\xf7\x17\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x6b\x03\x6a\x13\x63\x17\x6b\x1d\x67" => 64,
];
foreach ($hashes as $hash => $bits) {
var_dump($hashes[$hash], $bits);
var_dump($hashes[$hash], $bits);
}
?>
@@ -4,22 +4,21 @@ Next free element may overflow in array literals
<?php
$i = PHP_INT_MAX;
$array = [$i => 42, new stdClass];
var_dump($array);
try {
$array = [$i => 42, new stdClass];
var_dump($array);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
const FOO = [PHP_INT_MAX => 42, "foo"];
var_dump(FOO);
function test($x = [PHP_INT_MAX => 42, "foo"]) {}
try {
test();
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
Warning: Cannot add element to the array as the next element is already occupied in %s on line %d
array(1) {
[%d]=>
int(42)
}
Warning: Cannot add element to the array as the next element is already occupied in %s on line %d
array(1) {
[%d]=>
int(42)
}
--EXPECT--
Cannot add element to the array as the next element is already occupied
Cannot add element to the array as the next element is already occupied
+1 -1
View File
@@ -1,5 +1,5 @@
--TEST--
Ensure "undefined offset" notice formats message corectly when undefined key is negative
Ensure "undefined offset" notice formats message correctly when undefined key is negative
--FILE--
<?php
+20 -28
View File
@@ -6,36 +6,28 @@ Appending to an array via unpack may fail
<?php
$arr = [1, 2, 3];
var_dump([PHP_INT_MAX-1 => 0, ...$arr]);
try {
var_dump([PHP_INT_MAX-1 => 0, ...$arr]);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
var_dump([PHP_INT_MAX-1 => 0, ...[1, 2, 3]]);
try {
var_dump([PHP_INT_MAX-1 => 0, ...[1, 2, 3]]);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
const ARR = [1, 2, 3];
const ARR2 = [PHP_INT_MAX-1 => 0, ...ARR];
var_dump(ARR2);
function test($x = [PHP_INT_MAX-1 => 0, ...ARR]) {}
try {
test();
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
Warning: Cannot add element to the array as the next element is already occupied in %s on line %d
array(2) {
[9223372036854775806]=>
int(0)
[9223372036854775807]=>
int(1)
}
Warning: Cannot add element to the array as the next element is already occupied in %s on line %d
array(2) {
[9223372036854775806]=>
int(0)
[9223372036854775807]=>
int(1)
}
Warning: Cannot add element to the array as the next element is already occupied in %s on line %d
array(2) {
[9223372036854775806]=>
int(0)
[9223372036854775807]=>
int(1)
}
--EXPECT--
Cannot add element to the array as the next element is already occupied
Cannot add element to the array as the next element is already occupied
Cannot add element to the array as the next element is already occupied
+4 -4
View File
@@ -5,13 +5,13 @@ Basic array unpacking
$array = [1, 2, 3];
function getArr() {
return [4, 5];
return [4, 5];
}
function arrGen() {
for($i = 11; $i < 15; $i++) {
yield $i;
}
for($i = 11; $i < 15; $i++) {
yield $i;
}
}
var_dump([...[]]);
+7 -7
View File
@@ -4,23 +4,23 @@ Array unpacking with classes
<?php
class C {
public const FOO = [0, ...self::ARR, 4];
public const ARR = [1, 2, 3];
public static $bar = [...self::ARR];
public const FOO = [0, ...self::ARR, 4];
public const ARR = [1, 2, 3];
public static $bar = [...self::ARR];
}
class D {
public const A = [...self::B];
public const B = [...self::A];
public const A = [...self::B];
public const B = [...self::A];
}
var_dump(C::FOO);
var_dump(C::$bar);
try {
var_dump(D::A);
var_dump(D::A);
} catch (Error $ex) {
echo "Exception: " . $ex->getMessage() . "\n";
echo "Exception: " . $ex->getMessage() . "\n";
}
--EXPECT--
array(5) {
@@ -3,14 +3,14 @@ Array unpacking does not work with non-integer keys
--FILE--
<?php
function gen() {
yield [] => 1;
yield 1.23 => 123;
yield [] => 1;
yield 1.23 => 123;
}
try {
[...gen()];
[...gen()];
} catch (Error $ex) {
echo "Exception: " . $ex->getMessage() . "\n";
echo "Exception: " . $ex->getMessage() . "\n";
}
--EXPECT--
+6 -6
View File
@@ -4,16 +4,16 @@ array unpacking with string keys (not supported)
<?php
try {
$array = [1, 2, "foo" => 3, 4];
var_dump([...$array]);
$array = [1, 2, "foo" => 3, 4];
var_dump([...$array]);
} catch (Error $ex) {
var_dump($ex->getMessage());
var_dump($ex->getMessage());
}
try {
$iterator = new ArrayIterator([1, 2, "foo" => 3, 4]);
var_dump([...$iterator]);
$iterator = new ArrayIterator([1, 2, "foo" => 3, 4]);
var_dump([...$iterator]);
} catch (Error $ex) {
var_dump($ex->getMessage());
var_dump($ex->getMessage());
}
--EXPECT--
+2 -2
View File
@@ -6,9 +6,9 @@ array unpacking with undefinded variable
var_dump([...$arr]);
--EXPECTF--
Notice: Undefined variable: arr in %s on line %d
Warning: Undefined variable $arr in %s on line %d
Fatal error: Uncaught Error: Only arrays and Traversables can be unpacked in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
thrown in %s on line %d
+6 -6
View File
@@ -2,12 +2,12 @@
Tests that array unshift code is correctly dealing with copy on write and splitting on reference
--FILE--
<?php
$a=array();
$b=1;
$c=&$b;
array_unshift ($a,$b);
$b=2;
var_dump ($a);
$a=array();
$b=1;
$c=&$b;
array_unshift ($a,$b);
$b=2;
var_dump ($a);
?>
--EXPECT--
array(1) {
+1 -1
View File
@@ -9,5 +9,5 @@ var_dump((fn() => $b + $c)());
?>
--EXPECTF--
Notice: Undefined variable: c in %s on line %d
Warning: Undefined variable $c in %s on line %d
int(1)
+2 -2
View File
@@ -14,8 +14,8 @@ var_dump($fn());
?>
--EXPECTF--
Notice: Undefined variable: a in %s on line %d
Warning: Undefined variable $a in %s on line %d
NULL
Notice: Undefined variable: 5 in %s on line %d
Warning: Undefined variable $5 in %s on line %d
NULL
+2 -2
View File
@@ -32,7 +32,7 @@ try {
--EXPECTF--
int(2)
int(10)
Argument 1 passed to {closure}() must be of the type int, string given, called in %s on line %d
{closure}(): Argument #1 ($x) must be of type int, string given, called in %s on line %d
array(3) {
[0]=>
int(20)
@@ -41,4 +41,4 @@ array(3) {
[2]=>
int(30)
}
Argument 2 passed to {closure}() must be of the type int or null, string given, called in %s on line %d
{closure}(): Argument #2 ($args) must be of type ?int, string given, called in %s on line %d
-24
View File
@@ -1,24 +0,0 @@
--TEST--
Bug #70208 (scope information must be preserved with assert())
--FILE--
<?php
function non_class_scope() {
return true;
}
class test {
protected $prop = 1;
public function __construct() {
assert('non_class_scope();');
var_dump($this->prop);
}
}
new test;
?>
--EXPECTF--
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
int(1)
+121 -121
View File
@@ -6,137 +6,137 @@ assert.exception=0
--FILE--
<?php
assert(0 && ($a = function () {
global $a, $$b;
static $c, $d = 0;
unset($e);
$x = isset($a) && !empty($b) || eval($c);
$x = $a ? $b : $c;
$x = $a ?: $c;
$x = $a ?? $b;
list($a, $b, $c) = [1, 2=>'x', 'z'=>'c'];
@foo();
$y = clone $x;
yield 1 => 2;
yield from $x;
global $a, $$b;
static $c, $d = 0;
unset($e);
$x = isset($a) && !empty($b) || eval($c);
$x = $a ? $b : $c;
$x = $a ?: $c;
$x = $a ?? $b;
list($a, $b, $c) = [1, 2=>'x', 'z'=>'c'];
@foo();
$y = clone $x;
yield 1 => 2;
yield from $x;
}));
assert(0 && ($a = function &(array &$a, ?X $b = null) use ($c,&$d) : ?X {
abstract class A extends B implements C, D {
const X = 12;
const Y = self::X, Z = "aaa";
abstract class A extends B implements C, D {
const X = 12;
const Y = self::X, Z = "aaa";
public $a = 1, $b;
protected $c;
static private $d = null;
public $a = 1, $b;
protected $c;
static private $d = null;
abstract function foo();
abstract function foo();
static private function f1() {
for ($i = 0, $j = 100; $i < $j; $i++, --$j) {
$s[$i] = $a[$j];
}
foreach ($a as $key => &$val) {
print "$key => $val\n";
}
while ($s[$i]) {
$i++;
}
do {
$i--;
} while ($s[$i]);
$x = foo($a + 1, 4, ...[1,2,3]);
$x = ${$a . "_1"}();
$x = A::foo();
$x = ${$a . "_1"}::foo();
$x = A::${$a . "_1"}();
$x = $x->foo();
$x = ${$a . "_1"}->foo();
$x = $x->{$a . "_1"}();
$x->a = C::C;
${$a . "_1"}->a = ${$a . "_1"}::C;
$x->{a . "_1"} = C::C;
$x = C::$z;
$x = ${$a . "_1"}::$z;
$x = C::${$z . "_1"};
}
}
static private function f1() {
for ($i = 0, $j = 100; $i < $j; $i++, --$j) {
$s[$i] = $a[$j];
}
foreach ($a as $key => &$val) {
print "$key => $val\n";
}
while ($s[$i]) {
$i++;
}
do {
$i--;
} while ($s[$i]);
$x = foo($a + 1, 4, ...[1,2,3]);
$x = ${$a . "_1"}();
$x = A::foo();
$x = ${$a . "_1"}::foo();
$x = A::${$a . "_1"}();
$x = $x->foo();
$x = ${$a . "_1"}->foo();
$x = $x->{$a . "_1"}();
$x->a = C::C;
${$a . "_1"}->a = ${$a . "_1"}::C;
$x->{a . "_1"} = C::C;
$x = C::$z;
$x = ${$a . "_1"}::$z;
$x = C::${$z . "_1"};
}
}
}));
assert(0 && ($a = function &(array &$a, X $b = null) use ($c,&$d) : X {
final class A {
final protected function f2() {
if (!$x) {
return 0;
}
if ($x == 1) {
return 1;
} else if ($x == 2) {
return 2;
} else if ($x == 3) {
return 3;
} else {
if ($x == 9) {
return 9;
}
assert(0 && ($a = function &(array &$a, X $b = null, int|float $c) use ($c,&$d) : X {
final class A {
final protected function f2() {
if (!$x) {
return 0;
}
if ($x == 1) {
return 1;
} else if ($x == 2) {
return 2;
} else if ($x == 3) {
return 3;
} else {
if ($x == 9) {
return 9;
}
L0:
do {
switch ($x) {
case 4: break;
case 5: continue;
case 6: break 2;
case 7: continue 2;
case 8: goto L0;
default: return;
}
} while (0);
}
}
}
switch ($x) {
case 4: break;
case 5: continue;
case 6: break 2;
case 7: continue 2;
case 8: goto L0;
default: return;
}
} while (0);
}
}
}
}));
assert(0 && ($a = function &(?array &$a, X $b = null) use ($c,&$d) : X {
class A {
use T1, T2 {
T1::foo insteadof foo;
T2::foo as bar;
baz as public;
ops as protected x;
}
use T3;
}
class A {
use T1, T2 {
T1::foo insteadof foo;
T2::foo as bar;
baz as public;
ops as protected x;
}
use T3;
}
}));
assert(0 && ($a = function &(array &...$a) {
declare(A=1,B=2);
try {
$i++;
} catch (MyException $e) {
echo 1;
} catch (Exception $e) {
echo 2;
} finally {
echo 3;
}
declare(A=1,B=2);
try {
$i++;
} catch (MyException $e) {
echo 1;
} catch (Exception $e) {
echo 2;
} finally {
echo 3;
}
}));
assert(0 && ($a = function () {
declare(C=1) { echo 1; }
$x = '\'"`$a';
$x = "'\"`$a";
$x = `'"\`$a`;
$x = "{$a}b";
$x = "${a}b";
$x = " {$foo->bar} ${$foo->bar} ";
$x = " ${'---'} ";
foo();
\foo();
namespace\foo();
$x = foo;
$x = \foo;
$x = namespace\foo;
$x = new foo();
$x = new \foo();
$x = new namespace\foo();
assert(0 && ($a = function (): ?static {
declare(C=1) { echo 1; }
$x = '\'"`$a';
$x = "'\"`$a";
$x = `'"\`$a`;
$x = "{$a}b";
$x = "${a}b";
$x = " {$foo->bar} ${$foo->bar} ";
$x = " ${'---'} ";
foo();
\foo();
namespace\foo();
$x = foo;
$x = \foo;
$x = namespace\foo;
$x = new foo();
$x = new \foo();
$x = new namespace\foo();
if ($a) {
} elseif ($b) {
}
@@ -160,7 +160,7 @@ Warning: assert(): assert(0 && ($a = function () {
$y = clone $x;
yield 1 => 2;
yield from $x;
})) failed in %sexpect_015.php on line %d
})) failed in %s on line %d
Warning: assert(): assert(0 && ($a = function &(array &$a, ?X $b = null) use($c, &$d): ?X {
abstract class A extends B implements C, D {
@@ -202,9 +202,9 @@ Warning: assert(): assert(0 && ($a = function &(array &$a, ?X $b = null) use($c,
}
})) failed in %sexpect_015.php on line %d
})) failed in %s on line %d
Warning: assert(): assert(0 && ($a = function &(array &$a, X $b = null) use($c, &$d): X {
Warning: assert(): assert(0 && ($a = function &(array &$a, X $b = null, int|float $c) use($c, &$d): X {
final class A {
protected final function f2() {
if (!$x) {
@@ -242,7 +242,7 @@ Warning: assert(): assert(0 && ($a = function &(array &$a, X $b = null) use($c,
}
})) failed in %sexpect_015.php on line %d
})) failed in %s on line %d
Warning: assert(): assert(0 && ($a = function &(?array &$a, X $b = null) use($c, &$d): X {
class A {
@@ -255,7 +255,7 @@ Warning: assert(): assert(0 && ($a = function &(?array &$a, X $b = null) use($c,
use T3;
}
})) failed in %sexpect_015.php on line %d
})) failed in %s on line %d
Warning: assert(): assert(0 && ($a = function &(array &...$a) {
declare(A = 1, B = 2);
@@ -268,9 +268,9 @@ Warning: assert(): assert(0 && ($a = function &(array &...$a) {
} finally {
echo 3;
}
})) failed in %sexpect_015.php on line %d
})) failed in %s on line %d
Warning: assert(): assert(0 && ($a = function () {
Warning: assert(): assert(0 && ($a = function (): ?static {
declare(C = 1) {
echo 1;
}
@@ -296,4 +296,4 @@ Warning: assert(): assert(0 && ($a = function () {
if ($a) {
} else {
}
})) failed in %sexpect_015.php on line %d
})) failed in %s on line %d
+2 -2
View File
@@ -6,8 +6,8 @@ assert.exception=0
--FILE--
<?php
assert(0 && ($a = function () {
$var = 'test';
$str = "$var, $var[1], {$var}[], {$var[1]}[], ${var}[], ${var[1]}[]";
$var = 'test';
$str = "$var, $var[1], {$var}[], {$var[1]}[], ${var}[], ${var[1]}[]";
}));
?>
--EXPECTF--
Loaded 100 of 11370 files, more files were not shown because too many files have changed in this diff. Show more