1 /* { dg-do compile } */ 2 /* { dg-options "-Os -Wuninitialized" } */ 3 void bail(void) __attribute__((noreturn)); 4 unsigned once(void); pr(char ** argv)5int pr(char**argv) 6 { 7 char *bug; 8 unsigned check = once(); 9 if (check) { 10 if (*argv) 11 bug = *++argv; 12 } else { 13 bug = *argv++; 14 if (!*argv) 15 bail(); 16 } 17 /* now bug is set except if (check && !*argv) */ 18 if (check) { 19 if (!*argv) 20 return 0; 21 } 22 /* if we ever get here then bug is set */ 23 return *bug != 'X'; 24 } 25 26