repo.or.cz
/
official-gcc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
* tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
[official-gcc.git]
/
gcc
/
testsuite
/
gcc.dg
/
tree-ssa
/
cswtch.c
blob
5737a0ef3c8c395e9fc56b0fb41b03af167cb7b2
1
/* { dg-options "-O2 -fdump-tree-switchconv" } */
2
/* { dg-do run } */
3
4
extern
void
abort
(
void
);
5
6
static int
X
,
Y
;
7
8
int
check
(
int
param
)
9
{
10
int
a
=
0
;
11
int
b
=
1
;
12
13
switch
(
param
)
14
{
15
case
-
2
:
16
a
=
0
;
17
b
= -
1
;
18
break
;
19
case
1
:
20
case
2
:
21
a
=
8
;
22
b
=
6
;
23
break
;
24
case
3
:
25
a
=
9
;
26
b
=
5
;
27
break
;
28
case
6
:
29
a
=
10
;
30
b
=
4
;
31
break
;
32
default
:
33
a
=
16
;
34
b
=
1
;
35
}
36
37
X
=
a
;
38
Y
=
b
;
39
return
0
;
40
}
41
42
void
assertions
(
int
a
,
int
b
)
43
{
44
if
(
X
!=
a
||
Y
!=
b
)
45
abort
();
46
47
return
;
48
}
49
50
int
main
()
51
{
52
check
(-
10
);
53
assertions
(
16
,
1
);
54
55
check
(-
2
);
56
assertions
(
0
, -
1
);
57
58
check
(
1
);
59
assertions
(
8
,
6
);
60
61
check
(
2
);
62
assertions
(
8
,
6
);
63
64
check
(
3
);
65
assertions
(
9
,
5
);
66
67
check
(
5
);
68
assertions
(
16
,
1
);
69
70
check
(
6
);
71
assertions
(
10
,
4
);
72
73
check
(
12
);
74
assertions
(
16
,
1
);
75
76
return
0
;
77
}
78
79
/* { dg-final { scan-tree-dump "Switch converted" "switchconv" } } */