1 #include "check_debug.h"
2 
3 struct bar {
4 	int a, b, c;
5 };
6 
7 struct foo {
8 	struct bar bar;
9 	int x, y, z;
10 };
11 
test(int size)12 int test(int size)
13 {
14 	struct foo foo = {
15 		.bar.a = 42,
16 		.bar.b = 43,
17 		-1,
18 	};
19 	__smatch_implied(foo.bar.b);
20 	__smatch_implied(foo.bar.c);
21 	__smatch_implied(foo.x);
22 	__smatch_implied(foo.y);
23 
24 	return 0;
25 }
26 
27 /*
28  * check-name: smatch: nested initializer
29  * check-command: smatch -I.. sm_initializer.c
30  *
31  * check-output-start
32 sm_initializer.c:19 test() implied: foo.bar.b = '43'
33 sm_initializer.c:20 test() implied: foo.bar.c = '0'
34 sm_initializer.c:21 test() implied: foo.x = '(-1)'
35 sm_initializer.c:22 test() implied: foo.y = '0'
36  * check-output-end
37  */
38