Michael Moravec
f5044a12dd
Implement ZEND_ARRAY_KEY_EXISTS opcode to speed up array_key_exists()
2018-12-26 23:54:11 +03:00
Zeev Suraski
67e0138c0d
Future-proof email addresses...
2018-11-01 18:30:28 +02:00
Nikita Popov
3d415644f7
Merge branch 'PHP-7.3'
2018-10-25 16:44:54 +02:00
Nikita Popov
78c2e0e342
Merge branch 'PHP-7.2' into PHP-7.3
2018-10-25 16:44:19 +02: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
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
Dmitry Stogov
689c6fb188
Replace ZEND_ACC_ANON_BOUND, ZEND_ACC_UNRESOLVED_PARENT and ZEND_ACC_UNRESOLVED_INTERFACES with single ZEND_ACC_LINKED.
2018-09-18 11:41:40 +03:00
Dmitry Stogov
6136a20544
ZEND_DECLARE_CLASS, ZEND_DECLARE_INHERITED_CLASS and ZEND_DECLARE_INHERITED_CLASS_DELAYED don't need return value anymore.
2018-08-24 15:40:53 +03:00
Dmitry Stogov
8050f4a334
Keep information about unresolved parent class in zend_class_entry->parent_name
2018-08-24 00:20:57 +03:00
Dmitry Stogov
b8828926f2
Avoid hash lookups in BIND_STATIC and BIND_LEXICAL opcode handlers.
...
Encode static variable offset into opline->extended_value.
2018-08-20 16:10:09 +03:00
Dmitry Stogov
57af94c8b9
Partial revert of 30156d588c
2018-07-02 20:54:44 +03:00
Rudi Theunissen
30156d588c
Fixed bug #63217
...
Don't automatically convert literal string keys to integers on
array access, as we may be dealing with an ArrayAccess object,
rather than a plain array.
2018-07-02 16:41:59 +02:00
Nikita Popov
5d7be2c2bc
Merge branch 'PHP-7.2'
2018-06-30 19:50:56 +02: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
Dmitry Stogov
1b80de93b8
Cleanup conditions
2018-06-26 16:18:30 +03:00
Dmitry Stogov
54f171cdc0
Restored zend_array_element_type() prototype
2018-06-26 11:23:37 +03:00
Nikita Popov
102bcb5c05
Update array_element_type inference for previous change
...
LIST_R and DIM_IS return value can't be MAY_BE_REF anymore.
2018-06-25 14:27:02 +02:00
Nikita Popov
490a49d0bb
Use COPY_DEREF for DIM_IS and LIST_R as well
...
Also add an upgrading note for the behavior change, not that we
expect anyone to be affected...
2018-06-25 14:23:06 +02:00
Dmitry Stogov
7793bc8ee6
Improved type inference. Result of opcodes using ZVAL_COPY_DEREF can't be MAY_BE_REF.
2018-06-25 13:07:44 +03:00
Nikita Popov
61d00a6cf3
Use COPY_DEREF instead of COPY_UNREF
...
This fixes the behavior when the storage location of the fetch is
modified before the operand is dereferenced by the using VM opcode.
Furthermore it elimiates references as a possible return value from
*_R opcodes, which will give us more opportunities for inferences,
in particular in regard to typed properties.
2018-06-25 11:23:59 +02:00
Xinchen Hui
1cc9933130
Fixed bug #76463 (var has array key type but not value type)
2018-06-12 20:55:06 +08:00
Dmitry Stogov
5eb1f92f31
Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.
2018-05-28 16:27:12 +03:00
Dmitry Stogov
9e1e284d48
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Revert "More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 )."
2018-03-13 11:04:03 +03:00
Dmitry Stogov
5574562f8f
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Revert "More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 )."
2018-03-13 11:03:57 +03:00
Dmitry Stogov
0643c7ab4d
Revert "More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 )."
...
This reverts commit 44ba557de5
.
2018-03-13 11:03:45 +03:00
Dmitry Stogov
1c3796b751
Merge branch 'PHP-7.2'
...
* PHP-7.2:
More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 ).
2018-03-13 10:47:11 +03:00
Dmitry Stogov
575f5002c0
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 ).
2018-03-13 10:45:53 +03:00
Dmitry Stogov
44ba557de5
More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 ).
2018-03-13 10:44:53 +03:00
Bob Weinand
827dff310b
Merge branch 'PHP-7.2'
2018-03-10 15:29:21 +01:00
Bob Weinand
cfd0979be5
Merge branch 'PHP-7.1' into PHP-7.2
2018-03-10 15:21:16 +01:00
Bob Weinand
9c6df8a238
Fix bug #76074 (opcache corrupts variable in for-loop)
2018-03-10 15:20:45 +01:00
Nikita Popov
df1439241a
Simplify code
...
If operator overloading is ignored tmp will be 0 and we can still
use |=. No need to separate this into two cases.
2018-02-19 21:38:10 +01:00
Dmitry Stogov
a02a126d54
Allow optional ignorance of operator overlaoding. Optimizer takes into account possibility of operator overloading at default optimization level, but ignores this possibility at "unsafe" level (opcache.optimization_level=-1).
2018-02-19 12:21:43 +03:00
Nikita Popov
48c0662876
Merge branch 'PHP-7.2'
2018-02-18 17:43:08 +01:00
Nikita Popov
c0abab5fca
Fix ZEND_SL range inference
...
This is a bit tricker than right shifts because shifting in the
sign bit flips the sign. The computed bounds are not tight.
2018-02-18 17:42:12 +01:00
Nikita Popov
202989edf8
Fix ZEND_SR range inference
...
Handle out-of-range RHS correctly.
2018-02-18 17:42:12 +01:00
Nikita Popov
85597e2932
Merge branch 'PHP-7.2'
2018-02-18 15:34:04 +01:00
Nikita Popov
ae837db8cf
Handle overloaded GMP operators in type inference
2018-02-18 15:33:30 +01:00
Nikita Popov
39974dd65d
Disable negative range inference
...
The negative range inference implementation does not work correctly,
and it's not clear right now how it can be fixed. As such, disable
it entirely for now.
2018-02-18 15:33:28 +01:00
Nikita Popov
2cd40b3aed
Merge branch 'PHP-7.2'
2018-02-17 23:21:31 +01:00
Nikita Popov
846e8a3ec9
Fix COUNT range inference
...
count() on objects may return a negative number :(
2018-02-17 23:18:30 +01:00
Nikita Popov
1a50a50bcf
Add RC flags in init_func_return_info
2018-02-17 23:18:29 +01:00
Nikita Popov
d05ac8f610
Merge branch 'PHP-7.2'
2018-02-09 15:11:42 +01:00
Nikita Popov
7aac61ce76
Fixed bug #75938
...
New modulus range inference implementation has been verified using
https://gist.github.com/nikic/67947ff92cf0e1f7e931f2f0d4cf817f .
The computed bounds are not tight, but it seems to be very hard to
compute tight bounds on modulus operations.
2018-02-09 15:10:23 +01:00
Gabriel Caruso
2d48d734a2
Fix some misspellings
2018-02-06 16:59:00 +01:00
Nikita Popov
39c5857135
Merge branch 'PHP-7.2'
2018-02-05 21:43:50 +01:00