Nikita Popov
f3498783df
Small cleanup in ternary compilation
2015-07-06 20:15:45 +02:00
Anatol Belski
a97f764472
bring back the division by zero warning
2015-07-05 20:18:17 +02:00
Bob Weinand
56b6e0dd14
Fix use after free with opcache (interned strings)
2015-07-05 02:00:52 +02:00
Kalle Sommer Nielsen
ce2cd89258
Replace references to PHP_WIN32 and TSRM_WIN32 with ZEND_WIN32 in Zend/, this also fixes 1 instance of where fflush(stderr) was misplaced (zend_extensions.c)
2015-07-04 18:55:22 +02:00
Aaron Piotrowski
68baa539dc
Allow integer default for float type
2015-07-02 18:07:24 -05:00
Bob Weinand
06fcf94c45
CT eval ZEND_DIV in all cases (warning was removed)
2015-07-02 02:20:58 +02:00
Dmitry Stogov
7aa7627172
Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).
2015-06-30 13:59:27 +03:00
Dmitry Stogov
4bd22cf1c1
Improved zend_string API (Francois Laupretre)
...
Squashed commit of the following:
commit d96eab8d79
Author: Francois Laupretre <francois@tekwire.net>
Date: Fri Jun 26 01:23:31 2015 +0200
Use the new 'ZSTR' macros in the rest of the code.
Does not change anything to the generated code (thanks to compat macros) but cleaner.
commit b352643910
Author: Francois Laupretre <francois@tekwire.net>
Date: Thu Jun 25 13:45:06 2015 +0200
Improve zend_string API
Add missing methods
2015-06-29 16:44:54 +03:00
Dmitry Stogov
642c379092
Prevent attempts of compile-time evaluation of invalid operators (e.g. division/modulo by zero and shift by negative number)
2015-06-29 12:58:07 +03:00
Dmitry Stogov
1bba4452e7
Reverted wrong fb08798c9f
2015-06-29 12:20:09 +03:00
Xinchen Hui
5ba28d76d2
Fixed segfault in wordpress (introduced in rev 4a4529adb0
)
2015-06-29 15:13:09 +08:00
Bob Weinand
fb08798c9f
Fix bug #69957 (Different ways of handling div/mod by zero)
2015-06-28 18:22:59 +02:00
Bob Weinand
4a4529adb0
Fix rope memory leaks upon exception
2015-06-28 15:42:15 +02:00
Bob Weinand
2894bc5bb8
Use ZEND_INIT_STATIC_METHOD_CALL for literals of form "classname::method"
2015-06-26 19:55:13 +02:00
Xinchen Hui
307c734bed
Better way to fix (Fix bug #69871 (short-circuiting failure with smart_branch))
2015-06-19 23:05:35 +08:00
Xinchen Hui
509d75527a
Fixed Conditional jump or move depends on uninitialised value(s)
...
reproduced by Bug #69868 's test script
2015-06-18 19:56:50 +08:00
Xinchen Hui
c58c5e779a
Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting)
2015-06-18 19:53:26 +08:00
Dmitry Stogov
a524a375d9
Improved class type hints checks, by caching resolved class entries in run-time cache.
2015-06-17 12:07:43 +03:00
Nikita Popov
4448843b7c
Move check for CT div by zero into common function
2015-06-16 18:09:59 +02:00
Bob Weinand
52e9a772a3
Fully fixing all the affected const expr cases (see bug #69832 )
2015-06-16 16:53:30 +02:00
Bob Weinand
9db81340ba
Fix bug #69832 (Assertion failure)
2015-06-15 17:43:09 +02:00
Bob Weinand
37c91b8d03
Fix off by one in short_circuiting optimization
2015-06-14 17:47:35 +02:00
Xinchen Hui
f1ae57f155
Simplify the condition
2015-06-14 22:56:06 +08:00
Bob Weinand
7221bd682f
Revert "Revert "Expand optimizations regarding short-circuting a bit""
...
This reverts commit 3770a5ac66
.
Fixes the bug which probably made make install fail on travis
(It never happened to me that all tests passed, but make install failed...)
2015-06-14 15:46:11 +02:00
Xinchen Hui
3770a5ac66
Revert "Expand optimizations regarding short-circuting a bit"
...
This break the CI (build error)
This reverts commit 3cfa58367b
.
2015-06-14 14:27:48 +08:00
Bob Weinand
3cfa58367b
Expand optimizations regarding short-circuting a bit
2015-06-14 06:01:01 +02:00
Bob Weinand
f263932f38
Fix short-circuting (bug #69825 )
2015-06-14 02:00:55 +02:00
Xinchen Hui
20d85e4f02
typo
2015-06-13 10:56:30 +08:00
Xinchen Hui
829c7a1bb0
Merge branch 'master' of git.php.net:php-src
2015-06-13 10:51:15 +08:00
Xinchen Hui
d96dda8d49
Fixed Bug #69761 (Serialization of anonymous classes should be prevented)
...
And also cleanup anonymous class compiling, it make no sense prefix a
namespace to anonymous class name. and it is always lowcased and
interned string.
2015-06-13 10:49:20 +08:00
Bob Weinand
7c2a0157c7
Cache the class_name typehint key in arg_info
...
This leads to up to 2% improvement on one tested real world application by not having to always recalculate the lowercased string and its hash
2015-06-12 17:26:53 +02:00
Xinchen Hui
49a8f801c7
Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name)
2015-06-12 21:07:23 +08:00
Dmitry Stogov
be988aba36
Compile-time constant folding
2015-06-11 01:57:37 +03:00
Xinchen Hui
cea801cce2
Fixed bug #69767 (Default parameter value with wrong type segfaults)
2015-06-08 11:47:22 +08:00
Dmitry Stogov
adb5f93f85
Fixed bug #69755 (segfault in ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER)
2015-06-04 09:38:22 +03:00
Bob Weinand
1d3f77d13d
Fix Bug #69754 (Compile failure with ::class in array)
2015-06-03 23:59:59 +02:00
Nikita Popov
402f697068
Remove zend_init_list
...
No longer used - zend_add_to_list already covers this.
Also marked zend_add_to_list as static and dropped it from the header.
2015-05-29 11:07:51 +02:00
Nikita Popov
21a29b4be3
Drop unnecessary checks for op_array->filename
...
We always require a filename.
2015-05-29 11:07:51 +02:00
Xinchen Hui
770a462943
implicit declaration of function ‘zend_multibyte_yyinput_again’
2015-05-26 10:36:52 +08:00
Bob Weinand
69b54ba926
Also unreserve T_CLASS
2015-05-25 22:58:30 +02:00
Bob Weinand
306a0f28d0
Merge branch 'master' of https://github.com/php/php-src
2015-05-25 19:00:53 +02:00
Dmitry Stogov
03f41f9b4d
Prevent op_array->this_var setting when method uses auto globals
2015-05-25 19:59:25 +03:00
Bob Weinand
886cbea94f
Merge context sensitive lexer RFC
2015-05-25 18:38:40 +02:00
Levi Morrison
e13803d15b
Inline zend_find_builtin_type
...
This function was used only inside of zend_find_builtin_type_by_name,
which is also used only one time.
2015-05-23 11:12:13 +02:00
Levi Morrison
e22ceb6e82
Remove duplication
2015-05-23 11:12:13 +02:00
Levi Morrison
339283c523
Rename some variables and functions
...
The way these are used have little to do with them being scalars;
they are just tuples with names, lengths and IS_* constants. We
will probably reuse these in the future with other types.
2015-05-23 11:12:12 +02:00
Nikita Popov
7a88d16cf3
Use ZEND_JMP instead of ZEND_BRK/ZEND_CONT
...
Emit necessary FREEs during compilation, convert to JMP during
pass_two (we may not know target opline beforehand).
2015-05-23 10:51:33 +02:00
Nikita Popov
9325ada725
Embed break/continue depth into opline
...
Previously a separate lval literal was used - this is probably a
leftover from the time where the break level could still be
specified dynamically.
2015-05-23 10:51:33 +02:00
Nikita Popov
3cbe3903fa
Move loop var stack management into begin/end loop
...
Also set start to -1 in begin_loop already, so the info that a
loop variable is not used is already available at compile-time.
2015-05-23 10:51:33 +02:00
Nikita Popov
d0e265392f
Drop FREE_ON_RETURN flag, check brk_cont->start instead
...
Start >= 0 already tells us whether or not the loop has a loop
variable, no need to add extra flags to opcodes.
Also added a test for a case where FREE_ON_RETURN is relevant,
we didn't seem to have any coverage for this.
2015-05-23 10:51:33 +02:00