aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/tree-ssa/pr36550.c
blob: 3eda5081c9bf1ff891dbd53ff95b8a95b2ec7eb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* { 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';
}