File tree Expand file tree Collapse file tree 2 files changed +58
-2
lines changed Expand file tree Collapse file tree 2 files changed +58
-2
lines changed Original file line number Diff line number Diff line change @@ -2006,7 +2006,7 @@ static void sccp_mark_feasible_successors(
2006
2006
scdf_mark_edge_feasible (scdf , block_num , target );
2007
2007
return ;
2008
2008
}
2009
- s = 0 ;
2009
+ s = block -> successors_count - 1 ;
2010
2010
break ;
2011
2011
case ZEND_SWITCH_STRING :
2012
2012
if (Z_TYPE_P (op1 ) == IS_STRING ) {
@@ -2024,7 +2024,7 @@ static void sccp_mark_feasible_successors(
2024
2024
scdf_mark_edge_feasible (scdf , block_num , target );
2025
2025
return ;
2026
2026
}
2027
- s = 0 ;
2027
+ s = block -> successors_count - 1 ;
2028
2028
break ;
2029
2029
default :
2030
2030
for (s = 0 ; s < block -> successors_count ; s ++ ) {
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug 80900: Switch constant with incorrect type
3
+ --INI--
4
+ opcache.enable=1
5
+ opcache.enable_cli=1
6
+ opcache.optimization_level=-1
7
+ --SKIPIF--
8
+ <?php require_once ('skipif.inc ' ); ?>
9
+ --FILE--
10
+ <?php
11
+ function switchLong () {
12
+ $ var = 'foo ' ;
13
+ /* The number of case clauses needs to be greater than 5,
14
+ * otherwise it will not be compiled into SWITCH_LONG. */
15
+ switch ($ var ) {
16
+ case 1 :
17
+ echo 'no1 ' ;
18
+ break ;
19
+ case 2 :
20
+ echo 'no2 ' ;
21
+ break ;
22
+ case 3 :
23
+ echo 'no3 ' ;
24
+ break ;
25
+ case 4 :
26
+ echo 'no4 ' ;
27
+ break ;
28
+ case 5 :
29
+ echo 'no5 ' ;
30
+ break ;
31
+ default :
32
+ echo 'yes ' ;
33
+ break ;
34
+ }
35
+ echo PHP_EOL ;
36
+ }
37
+
38
+ function switchString () {
39
+ $ var = false ;
40
+ switch ($ var ) {
41
+ case 'string ' :
42
+ echo 'no ' ;
43
+ break ;
44
+ default :
45
+ echo 'yes ' ;
46
+ break ;
47
+ }
48
+ echo PHP_EOL ;
49
+ }
50
+
51
+ switchLong ();
52
+ switchString ();
53
+ ?>
54
+ --EXPECT--
55
+ yes
56
+ yes
You can’t perform that action at this time.
0 commit comments