analyzer: Fix PR analyzer/101980
[official-gcc.git] / gcc / testsuite / gcc.dg / analyzer / single-field.c
blob31c6feead8fec78c5eb84e606ffc11906082b05d
1 #include <stdlib.h>
2 #include "analyzer-decls.h"
4 struct foo
6 char *ptr;
7 };
9 void test_1 (struct foo f)
11 __analyzer_describe (0, f.ptr); /* { dg-warning "svalue: 'INIT_VAL\\(f.ptr\\)'" } */
14 static void __analyzer_called_by_test_2 (struct foo f_inner)
16 free (f_inner.ptr);
17 free (f_inner.ptr); /* { dg-warning "double-'free' of 'f_outer.ptr'" } */
19 void test_2 (struct foo f_outer)
21 __analyzer_called_by_test_2 (f_outer);
24 struct nested
26 struct foo f;
29 static void __analyzer_called_by_test_3 (struct nested n_inner)
31 free (n_inner.f.ptr);
32 free (n_inner.f.ptr); /* { dg-warning "double-'free' of 'n_outer.f.ptr'" } */
34 void test_3 (struct nested n_outer)
36 __analyzer_called_by_test_3 (n_outer);