/* { dg-do compile } */ /* { dg-options "-Os -Wuninitialized" } */ void bail(void) __attribute__((noreturn)); unsigned once(void); int pr(char**argv) { char *bug; unsigned check = once(); if (check) { if (*argv) bug = *++argv; } else { bug = *argv++; if (!*argv) bail(); } /* now bug is set except if (check && !*argv) */ if (check) { if (!*argv) return 0; } /* if we ever get here then bug is set */ return *bug != 'X'; }