foo(int * ptr,int i)1 int foo(int *ptr, int i)
2 {
3 int *p;
4
5 switch (i - i) { // will be optimized to 0
6 case 0:
7 return 0;
8 case 1: // will be optimized away
9 p = ptr;
10 do { // will be an unreachable loop
11 *p++ = 123;
12 } while (--i);
13 break;
14 }
15
16 return 1;
17 }
18
bar(int * ptr,int i)19 int bar(int *ptr, int i)
20 {
21 int *p;
22
23 switch (i - i) { // will be optimized to 0
24 case 0:
25 return 0;
26 case 1: // will be optimized away
27 // p is uninitialized
28 do { // will be an unreachable loop
29 *p++ = 123;
30 } while (--i);
31 break;
32 }
33
34 return 1;
35 }
36
37 /*
38 * check-name: crazy02-not-so.c
39 * check-command: sparse -Wno-decl $file
40 */
41