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 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