param_cleared: handle direct assignments
[smatch.git] / validation / sm_implied2.c
blobc25e3567c2e0ad2bae70f3e96780552b9bf8d1ae
1 struct ture {
2 int a;
3 };
5 struct ture *a;
6 struct ture *b;
7 struct ture *c;
9 void func (void)
11 struct ture *aa, *ab;
13 b = 0;
14 if (a) {
15 aa = returns_nonnull();
16 ab = returns_nonnull();
17 } else {
18 b = -1;
20 if (!(b)) {
21 if (c) {
22 aa = (void *)0;
23 ab = (void *)0;
24 b = -1;
27 if (!c)
28 aa->a = 1;
29 if (b)
30 return;
31 ab->a = 1;
32 return;
35 * check-name: Smatch implied #2
36 * check-command: smatch --spammy sm_implied2.c
38 * check-output-start
39 sm_implied2.c:28 func() error: potentially dereferencing uninitialized 'aa'.
40 * check-output-end