type: introduce get_final_type()
[smatch.git] / validation / sm_memory.c
blob145b1c0b494a2a55f75b174469f792930468550c
1 void *kmalloc(void);
2 void free(void *);
4 struct ture {
5 int *a;
6 };
8 struct ture *a;
9 struct ture *b;
10 void func (void)
12 struct ture *aa;
13 struct ture *ab;
14 struct ture *ac;
15 aa = kmalloc();
16 ab = kmalloc();
17 ac = kmalloc();
19 a = aa;
20 if (ab) {
21 free(ab);
22 return;
24 free(ac);
25 return;
28 * check-name: leak test #1
29 * check-command: smatch sm_memory.c
31 * check-output-start
32 sm_memory.c:22 func() warn: possible memory leak of 'ac'
33 sm_memory.c:22 func() error: memory leak of 'ac'
34 * check-output-end