Commit Graph

1536 Commits

Author SHA1 Message Date
Anatol Belski
5477d68300 Fix potential OPcache file cache related issues
To solve issues detected during testing, we backport the following
commits to PHP 7.2:

129c5c1181
9ac133a0b3
ce72bc6b65
2019-04-11 18:28:49 +02:00
Anatol Belski
f31d7ca85e Fix phar:// include handling with file cache 2019-04-10 14:55:15 +02:00
Dmitry Stogov
56a5d0bd91 Fixed CFG construction for SWITCH opcodes 2019-04-03 03:09:03 +03:00
Xinchen Hui
e072537e7f Simplfy test case
(I was working on the same bug while nikic committed the similar fix
2019-03-18 19:28:23 +08:00
Nikita Popov
54bf8c820f Fixed bug #77743 2019-03-18 10:49:53 +01:00
Nikita Popov
3f00c9367d Fixed bug #77691
We cannot replace an op1_def opcode with an ASSIGN, if it also has
a used res_def. Usually this doesn't happen because the res_def use
can be eliminated first. The example is a case where operand replacement
on the res_def use fails.
2019-03-04 13:11:12 +01:00
Nikita Popov
2cfb09caa7 Fix inference warning about missing key type 2019-02-22 11:55:16 +01:00
Dmitry Stogov
9222702633 Avoid dependency on "struct flock" fields order. 2019-02-12 10:15:16 +03:00
Tyson Andre
cf56832d00
Properly check for array_replace_recursive in sccp.c
Due to a typo, this code used to check for array_merge_recursive
twice.
2019-02-03 08:40:21 +01:00
Kevin Adler
332b58f865 Fix bug #77361 (configure fails on 64-bit AIX when opcache enabled)
In f904830012, support for GNU Hurd was added to the opcache and
the configure check to ensure the opcache knows the flock struct
layout prior to building was changed check for two cases: BSD layout
and Linux layout. All the existing hard-coded cases in
ZendAccelerator.h follow these two cases, except for 64-bit AIX.
This means that even though building on 64-bit AIX would work,
the configure script refuses to continue.

Add a new configure check for the 64-bit AIX case and a new
compiler definition HAVE_FLOCK_AIX64. Now that all the cases are
covered, simplify the ifdef logic around these three HAVE_FLOCK_*
macros:
- The macOS and the various BSD flavors fall under HAVE_FLOCK_BSD
- Linux, HP-UX, GNU Hurd, 32-bit AIX, and SVR4 environments
  fall under HAVE_FLOCK_LINUX
- 64-bit AIX falls under HAVE_FLOCK_AIX64

The only difference between the existing HAVE_FLOCK_LINUX and
the hard-coded Linux/HP-UX/Hurd case is that the latter
initialized the 5th member to 0, but since the C standard already
says that un-initialized members will be initialized to 0,
it's effectively the same.
2019-01-11 10:21:02 +01:00
Nikita Popov
1165a9068c Don't swap operands of ZEND_MUL
If this is used with operator overloading, then the operation does
not necessarily commute (for example, matrix multiplication).
2019-01-08 09:37:49 +01:00
Nikita Popov
17f8b9fb36 Fixed bug #77215
Remove invalid assertion: A block can have multiple switch frees,
so if we don't do live range block splitting, it is not necessarily
true that the free is located at the start of a block.
2018-11-28 20:08:39 +01:00
Nikita Popov
4daa413898 Fixed bug #77092
Weird that this worked for so long, probably because nearly all
ext/standard functions use fast ZPP rather than ordinary ZPP.
2018-11-02 14:29:03 +01:00
Nikita Popov
902ec36710 Merge branch 'PHP-7.1' into PHP-7.2 2018-10-25 16:43:36 +02:00
Nikita Popov
f1ceec5533 Fixed bug #77058
Account for the fact that undef must be interpreted as null for
the purposes of INC/DEC inference.
2018-10-25 16:37:41 +02:00
Nikita Popov
e7153e8a2f Improve "narrowing" error message
By including the opcode name.
2018-10-25 16:36:23 +02:00
Anatol Belski
6a5254bc96 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix test when it's run on another drive
2018-10-18 00:44:43 +02:00
Anatol Belski
fda06127fa Fix test when it's run on another drive 2018-10-18 00:43:24 +02:00
Peter Kokot
f1d7e3ca0b Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:31:31 +02:00
Peter Kokot
113213f027 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:29:24 +02:00
Peter Kokot
17ccbeec32 Trim trailing whitespace in *.phpt 2018-10-14 19:44:14 +02:00
Peter Kokot
7af945e271 Trim trailing whitespace in *.phpt 2018-10-14 19:43:12 +02:00
Peter Kokot
60a69daec6 Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-14 12:54:08 +02:00
Peter Kokot
03f3b8479b Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-14 12:51:01 +02:00
Peter Kokot
902d39a3a7 Trim trailing whitespace in source code files 2018-10-13 14:14:50 +02:00
Peter Kokot
7f6387b59a Trim trailing whitespace in source code files 2018-10-13 14:12:55 +02:00
Nikita Popov
cfdd828163 Fixed bug #76796 2018-09-07 14:02:03 +02:00
Anatol Belski
a6b8651d94 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS
2018-09-03 15:10:25 +02:00
Anatol Belski
f26172f934 Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS 2018-09-03 15:09:23 +02:00
Xinchen Hui
a879f4dd22 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file)
2018-08-16 13:56:37 +08:00
Xinchen Hui
8c92442b49 Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file) 2018-08-16 13:56:20 +08:00
Nikita Popov
34deda13a8 Merge branch 'PHP-7.1' into PHP-7.2 2018-06-30 19:50:40 +02:00
Nikita Popov
2eb6a541a9 Fix typo in compound dim assign op inference
Thankfully a harmless one, just makes inference results worse.
2018-06-30 19:50:07 +02:00
Xinchen Hui
f31ba7cb53 Fixed bug #76477 (Opcache causes empty return value) 2018-06-15 16:31:31 +08:00
Anatol Belski
f7b431fb30 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix Opcache test fails regarding to AppVeyor image update
2018-05-18 18:37:53 +02:00
Anatol Belski
6043a2d6f7 Fix Opcache test fails regarding to AppVeyor image update 2018-05-18 18:36:39 +02:00
Dmitry Stogov
3fe2e2a372 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2018-05-03 12:11:07 +03:00
Dmitry Stogov
5b3e1ded35 Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp) 2018-05-03 12:10:33 +03:00
Dmitry Stogov
df4d0a73d2 Revert "Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)."
This reverts commit c6ce03e45e.
2018-04-28 13:28:00 +03:00
Dmitry Stogov
f8c1ce18e9 Revert "Merge branch 'PHP-7.1' into PHP-7.2"
This reverts commit c547c1b980, reversing
changes made to 4c083e7a66.
2018-04-28 13:27:36 +03:00
Dmitry Stogov
c547c1b980 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
2018-04-28 00:24:56 +03:00
Dmitry Stogov
c6ce03e45e Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp). 2018-04-28 00:19:53 +03:00
Nikita Popov
4c083e7a66 Merge branch 'PHP-7.1' into PHP-7.2 2018-04-27 22:23:55 +02:00
Nikita Popov
6738d19fb8 Fix bug #76281
Make sure we keep the smart-branch inhibiting NOP even if there
are multiple NOPs in sequence.
2018-04-27 22:21:59 +02:00
Nikita Popov
2c602be7c8 Merge branch 'PHP-7.1' into PHP-7.2 2018-04-27 17:02:01 +02:00
Nikita Popov
279ba58edb Fixed bug #76275
* Adjust IS_SERIALIZED() check to account for potential empty
  allocations at the end of the memory region.
* Deallocate empty allocation if all try/catch elements have been
  removed in the block pass (similar to what we do if all live
  ranges have been eliminated).
2018-04-27 17:01:35 +02:00
Rasmus Lerdorf
aaae3637e0 Better explanation for the opcache.max_wasted_percentage ini setting
since it was pretty confusing before
2018-03-30 13:24:17 -07:00
Nikita Popov
3306577797 Followup fix for bug #75729
The case of overloaded substr() with 3 arguments was not handled.
2018-03-24 13:15:59 +01:00
Xinchen Hui
4758164ac5 Fixed bug #76094 (Access violation when using opcache) 2018-03-15 11:17:00 +08:00
Dmitry Stogov
2db6d8e415 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed use-after-free
2018-03-14 09:14:16 +03:00