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