11f5207b7SJohn Levon struct ture {
21f5207b7SJohn Levon 	int a;
31f5207b7SJohn Levon };
41f5207b7SJohn Levon 
51f5207b7SJohn Levon struct ture *a;
61f5207b7SJohn Levon struct ture *b;
71f5207b7SJohn Levon 
func(void)81f5207b7SJohn Levon void func (void)
91f5207b7SJohn Levon {
101f5207b7SJohn Levon 	struct ture *aa;
111f5207b7SJohn Levon 
121f5207b7SJohn Levon 	b = 0;
131f5207b7SJohn Levon 	if (a)
141f5207b7SJohn Levon 		goto x;
151f5207b7SJohn Levon 	aa = returns_nonnull();
161f5207b7SJohn Levon 	b = 1;
171f5207b7SJohn Levon x:
181f5207b7SJohn Levon 	if (b)
191f5207b7SJohn Levon 		aa->a = 1;
201f5207b7SJohn Levon 	aa->a = 1;
211f5207b7SJohn Levon 	return;
221f5207b7SJohn Levon }
231f5207b7SJohn Levon /*
241f5207b7SJohn Levon  * check-name: Smatch implied #1
251f5207b7SJohn Levon  * check-command: smatch --spammy sm_implied.c
261f5207b7SJohn Levon  *
271f5207b7SJohn Levon  * check-output-start
28*efe51d0cSJohn Levon sm_implied.c:20 func() error: potentially dereferencing uninitialized 'aa'.
291f5207b7SJohn Levon sm_implied.c:20 func() error: potentially dereferencing uninitialized 'aa'.
301f5207b7SJohn Levon  * check-output-end
311f5207b7SJohn Levon  */
32