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