Commit graph

228 commits

Author SHA1 Message Date
Nikita Popov
1391a0fa0b Fixed bug #75893
It is not sufficient to just add the additional types for aliased
variables at the end of type inference, because types of derived
variables may depend on them. Make sure the additional types are
always added whenever the type of an aliased variable is updated.
2018-02-05 21:41:44 +01:00
Dmitry Stogov
3a794d39f0 Avoid repeatable ARG_SHOULD_BE_SENT_BY_REF() checks in FETCH_*FUNC_ARG and following SEND_VAR_EX. Perform the check once in a new CHECK_FUNC_ARG opcode and reuse in the following FETCH_*FUNC_ARG and SEND_FUNC_ARG (SEND_VAR_EX replacement). 2018-02-05 19:40:06 +03:00
Dmitry Stogov
f67f455ef7 Changed FETCH_CLASS instruction format (extended_value moved into op1) 2018-01-31 18:14:43 +03:00
Nikita Popov
f208187773 Backport narrowing fix to 7.1
This is a cherry-pick of 8a4532319d.
2018-01-09 18:41:46 +01:00
Gabriel Caruso
6400264856 Trailing whitespaces
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-03 14:38:00 +01:00
Xinchen Hui
a6519d0514 year++ 2018-01-02 12:57:58 +08:00
Xinchen Hui
7a7ec01a49 year++ 2018-01-02 12:55:14 +08:00
Xinchen Hui
ccd4716ec7 year++ 2018-01-02 12:53:31 +08:00
Xinchen Hui
4deb63dc5a Merge branch 'PHP-7.2'
* PHP-7.2:
  Updated NEWS
2017-12-17 09:42:18 +08:00
Xinchen Hui
a3b5b93ba9 Updated NEWS 2017-12-17 09:42:01 +08:00
Nikita Popov
46da97f7da Merge branch 'PHP-7.2' 2017-12-16 21:12:57 +01:00
Nikita Popov
8a4532319d Improve fix for bug #75687
Adding an (incorrect) UNDEF here may cause subsequent narrowing in
other places.

Instead, let's try to handle this edge-case once for all
instructions...
2017-12-16 21:11:40 +01:00
Xinchen Hui
ef9d2cecc6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75687 (var 8 (TMP) has array key type but not value type)
2017-12-16 23:59:44 +08:00
Xinchen Hui
a20c9bd3fe Fixed bug #75687 (var 8 (TMP) has array key type but not value type) 2017-12-16 23:59:10 +08:00
David Walker
6d4de4cf05 Implement list() reference assignments
Support list() reference assignments of the form:

    list(&$a, list(&$b, $c)) = $d;

RFC: https://wiki.php.net/rfc/list_reference_assignment
2017-12-09 13:39:52 +01:00
Dmitry Stogov
c789dfee04 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75608 ("Narrowing occurred during type inference" error)
2017-12-04 17:23:34 +03:00
Dmitry Stogov
3503dc7482 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #75608 ("Narrowing occurred during type inference" error)
2017-12-04 17:22:28 +03:00
Dmitry Stogov
5934bff913 Fixed bug #75608 ("Narrowing occurred during type inference" error) 2017-12-04 17:22:06 +03:00
Dmitry Stogov
88e257c152 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug in type inference
2017-11-27 10:17:07 +03:00
Dmitry Stogov
a4b2ae69e9 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug in type inference
2017-11-27 10:16:46 +03:00
Dmitry Stogov
776bef8447 Fixed bug in type inference 2017-11-27 10:16:16 +03:00
Dmitry Stogov
10d2a5c09d Merge branch 'PHP-7.2'
* PHP-7.2:
  typo
2017-11-22 16:31:23 +03:00
Dmitry Stogov
2a6a1fd22c typo 2017-11-22 16:30:57 +03:00
Joe Watkins
3d12e70459
Merge branch 'PHP-7.2'
* PHP-7.2:
  fix wrong check of definition_phi->constraint.range.max_ssa_var
2017-11-03 17:50:19 +00:00
Joe Watkins
c3ee17065b
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  fix wrong check of definition_phi->constraint.range.max_ssa_var
2017-11-03 17:49:52 +00:00
MITSUNARI Shigeo
21dbd2ffcd
fix wrong check of definition_phi->constraint.range.max_ssa_var 2017-11-03 17:49:42 +00:00
Xinchen Hui
60e8e4700c Merge branch 'PHP-7.2'
* PHP-7.2:
  Use abbrev
2017-10-30 18:17:50 +08:00
Xinchen Hui
db4eb54149 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Use abbrev
2017-10-30 18:17:41 +08:00
Xinchen Hui
d9de0f8683 Use abbrev 2017-10-30 16:26:59 +08:00
Dmitry Stogov
1f5c0fad21 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type inference
2017-10-30 10:44:25 +03:00
Dmitry Stogov
49256dcf6f Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed type inference
2017-10-30 10:44:12 +03:00
Dmitry Stogov
230e505fd8 Fixed type inference 2017-10-30 10:41:27 +03:00
Dmitry Stogov
ef5ea48741 Always use IS_CONSTANT_AST (IS_CONSTANT is removed). 2017-10-10 10:11:05 +03:00
Dmitry Stogov
e70618aff6 Changed the way VM accesses constant operands in 64-bit builds. 2017-10-04 16:53:01 +03:00
Dmitry Stogov
1f8970c156 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75255 (Request hangs and not finish)
2017-09-27 17:18:17 +03:00
Dmitry Stogov
978c6c4e31 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #75255 (Request hangs and not finish)
2017-09-27 17:17:46 +03:00
Dmitry Stogov
1c68d63f35 Fixed bug #75255 (Request hangs and not finish) 2017-09-27 17:16:24 +03:00
Dmitry Stogov
a3fdf6f0f6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Added missed ~
2017-09-25 12:23:11 +03:00
Dmitry Stogov
2a33e357cd Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Added missed ~
2017-09-25 12:23:01 +03:00
Dmitry Stogov
550595c085 Added missed ~ 2017-09-25 12:22:35 +03:00
Dmitry Stogov
40df83ec29 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type inference
2017-09-25 12:05:24 +03:00
Dmitry Stogov
801cdb8945 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed type inference
2017-09-25 12:04:13 +03:00
Dmitry Stogov
d526ddec85 Fixed type inference 2017-09-25 12:03:47 +03:00
Dmitry Stogov
8109ebbd05 Allow removing of unused func_get_args() and func_get_num_args(). 2017-09-18 14:37:51 +03:00
Dmitry Stogov
296d844058 Fix inference (result of ++/-- can't be a reference) 2017-09-04 20:40:42 +03:00
Dmitry Stogov
2e462e12db Fixed SSA construction for PRE_INC_OBJ and family (these opcodes change the source object) 2017-08-31 13:16:21 +03:00
Dmitry Stogov
44064529a8 Detect undefined variable usage 2017-08-30 16:02:29 +03:00
Dmitry Stogov
3b8f9d933f Accurate handling of ZEND_ASSIGN_OBJ 2017-08-29 12:10:47 +03:00
Xinchen Hui
ee26c1efbc Fixed type-infer 2017-08-21 16:35:07 +08:00
Xinchen Hui
2e002eaf70 Fixed for RESOURCE too 2017-08-19 18:55:56 +08:00