Skip to content

Commit 867398e

Browse files
committed
Make FE_RESET_R result TMP
1 parent fb6242b commit 867398e

File tree

6 files changed

+22
-18
lines changed

6 files changed

+22
-18
lines changed

Zend/zend_compile.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6266,6 +6266,10 @@ static void zend_compile_foreach(zend_ast *ast) /* {{{ */
62666266

62676267
opnum_reset = get_next_op_number();
62686268
opline = zend_emit_op(&reset_node, by_ref ? ZEND_FE_RESET_RW : ZEND_FE_RESET_R, &expr_node, NULL);
6269+
if (!by_ref) {
6270+
opline->result_type = IS_TMP_VAR;
6271+
reset_node.op_type = IS_TMP_VAR;
6272+
}
62696273

62706274
zend_begin_loop(ZEND_FE_FREE, &reset_node, false);
62716275

ext/opcache/tests/match/001.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ $_main:
3535
0001 SEND_VAL string("a") 1
3636
0002 SEND_VAL string("i") 2
3737
0003 T2 = DO_ICALL
38-
0004 V1 = FE_RESET_R T2 0013
39-
0005 FE_FETCH_R V1 CV0($char) 0013
38+
0004 T1 = FE_RESET_R T2 0013
39+
0005 FE_FETCH_R T1 CV0($char) 0013
4040
0006 INIT_FCALL 1 %d string("var_dump")
4141
0007 INIT_FCALL 1 %d string("test")
4242
0008 SEND_VAR CV0($char) 1
4343
0009 V2 = DO_UCALL
4444
0010 SEND_VAR V2 1
4545
0011 DO_ICALL
4646
0012 JMP 0005
47-
0013 FE_FREE V1
47+
0013 FE_FREE T1
4848
0014 RETURN int(1)
4949
LIVE RANGES:
5050
1: 0005 - 0013 (loop)

ext/opcache/tests/match/003.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@ $_main:
3636
0001 SEND_VAL int(0) 1
3737
0002 SEND_VAL int(10) 2
3838
0003 T2 = DO_ICALL
39-
0004 V1 = FE_RESET_R T2 0013
40-
0005 FE_FETCH_R V1 CV0($char) 0013
39+
0004 T1 = FE_RESET_R T2 0013
40+
0005 FE_FETCH_R T1 CV0($char) 0013
4141
0006 INIT_FCALL 1 %d string("var_dump")
4242
0007 INIT_FCALL 1 %d string("test")
4343
0008 SEND_VAR CV0($char) 1
4444
0009 V2 = DO_UCALL
4545
0010 SEND_VAR V2 1
4646
0011 DO_ICALL
4747
0012 JMP 0005
48-
0013 FE_FREE V1
48+
0013 FE_FREE T1
4949
0014 RETURN int(1)
5050
LIVE RANGES:
5151
1: 0005 - 0013 (loop)

ext/opcache/tests/match/004.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ $_main:
4141
0001 SEND_VAL int(0) 1
4242
0002 SEND_VAL int(6) 2
4343
0003 T2 = DO_ICALL
44-
0004 V1 = FE_RESET_R T2 0020
45-
0005 FE_FETCH_R V1 CV0($number) 0020
44+
0004 T1 = FE_RESET_R T2 0020
45+
0005 FE_FETCH_R T1 CV0($number) 0020
4646
0006 INIT_FCALL 1 %d string("var_dump")
4747
0007 INIT_FCALL 1 %d string("test")
4848
0008 SEND_VAR CV0($number) 1
@@ -57,7 +57,7 @@ $_main:
5757
0017 SEND_VAR V2 1
5858
0018 DO_ICALL
5959
0019 JMP 0005
60-
0020 FE_FREE V1
60+
0020 FE_FREE T1
6161
0021 RETURN int(1)
6262
LIVE RANGES:
6363
1: 0005 - 0020 (loop)

ext/opcache/tests/opt/sccp_022.phpt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ bar:
5151
; (lines=9, args=0, vars=3, tmps=2)
5252
; (after optimizer)
5353
; %s
54-
0000 V3 = FE_RESET_R CV0($a) 0007
55-
0001 FE_FETCH_R V3 CV1($v) 0007
56-
0002 V4 = FE_RESET_R CV1($v) 0005
57-
0003 FE_FETCH_R V4 CV2($v2) 0005
54+
0000 T3 = FE_RESET_R CV0($a) 0007
55+
0001 FE_FETCH_R T3 CV1($v) 0007
56+
0002 T4 = FE_RESET_R CV1($v) 0005
57+
0003 FE_FETCH_R T4 CV2($v2) 0005
5858
0004 JMP 0003
59-
0005 FE_FREE V4
59+
0005 FE_FREE T4
6060
0006 JMP 0001
61-
0007 FE_FREE V3
61+
0007 FE_FREE T3
6262
0008 RETURN null
6363
LIVE RANGES:
6464
3: 0001 - 0007 (loop)

ext/opcache/tests/opt/sccp_032.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ $_main:
3131
; %ssccp_032.php:1-15
3232
0000 INIT_FCALL 0 %d string("test")
3333
0001 T2 = DO_UCALL
34-
0002 V1 = FE_RESET_R T2 0009
35-
0003 FE_FETCH_R V1 CV0($x) 0009
34+
0002 T1 = FE_RESET_R T2 0009
35+
0003 FE_FETCH_R T1 CV0($x) 0009
3636
0004 INIT_FCALL 1 %d string("var_export")
3737
0005 SEND_VAR CV0($x) 1
3838
0006 DO_ICALL
3939
0007 ECHO string("\n")
4040
0008 JMP 0003
41-
0009 FE_FREE V1
41+
0009 FE_FREE T1
4242
0010 RETURN int(1)
4343
LIVE RANGES:
4444
1: 0003 - 0009 (loop)

0 commit comments

Comments
 (0)