xref: /illumos-gate/usr/src/tools/smatch/src/validation/switch-long.c (revision 45ede40b2394db7967e59f19288fae9b62efd4aa)
1 void def(void);
2 void r0(void);
3 void r1(void);
4 
5 void sw_long(long long a)
6 {
7 	switch (a) {
8 	case 0: return r0();
9 	case 1LL << 00: return r1();
10 	case 1LL << 32: return r1();
11 	}
12 
13 	return def();
14 }
15 
16 /*
17  * check-name: switch-long
18  * check-command: test-linearize -Wno-decl $file
19  *
20  * check-output-start
21 sw_long:
22 .L0:
23 	<entry-point>
24 	switch.64   %arg1, 0 -> .L2, 1 -> .L3, 4294967296 -> .L4, default -> .L1
25 
26 .L2:
27 	call        r0
28 	br          .L5
29 
30 .L3:
31 	call        r1
32 	br          .L5
33 
34 .L4:
35 	call        r1
36 	br          .L5
37 
38 .L1:
39 	call        def
40 	br          .L5
41 
42 .L5:
43 	ret
44 
45 
46  * check-output-end
47  */
48