struct s1 definition at struct2.c:3{ a is defined at struct2.c:4 [in struct/union scope starting at struct2.c:3] as a field of struct s1 off=0 bit_off=0 bit_wid=0, type: int } (size==4) f is defined at struct2.c:8 [in global scope starting at struct2.c:1] as a extern function returning void and taking no arguments struct s2 definition at struct2.c:10{ p1 is defined at struct2.c:11 [in struct/union scope starting at struct2.c:10] as a field of struct s2 off=0 bit_off=0 bit_wid=0, type: pointer to struct s1 (incomplete) } (size==4) s2 is defined at struct2.c:12 [in function scope starting at struct2.c:8] as a variable with stgclass auto of type: struct s2 (defined at struct2.c:10) struct s1 definition at struct2.c:15{ d is defined at struct2.c:16 [in struct/union scope starting at struct2.c:15] as a field of struct s1 off=0 bit_off=0 bit_wid=0, type: double } (size==8) struct s3 definition at struct2.c:13{ p1 is defined at struct2.c:17 [in struct/union scope starting at struct2.c:13] as a field of struct s3 off=4 bit_off=0 bit_wid=0, type: pointer to struct s1 (defined at struct2.c:15) p2 is defined at struct2.c:14 [in struct/union scope starting at struct2.c:13] as a field of struct s3 off=0 bit_off=0 bit_wid=0, type: pointer to struct s2 (defined at struct2.c:10) } (size==8) s3 is defined at struct2.c:18 [in function scope starting at struct2.c:8] as a variable with stgclass auto of type: struct s3 (defined at struct2.c:13) struct s1 definition at struct2.c:20{ f is defined at struct2.c:21 [in struct/union scope starting at struct2.c:20] as a field of struct s1 off=0 bit_off=0 bit_wid=0, type: float } (size==4) s1 is defined at struct2.c:22 [in block scope starting at struct2.c:20] as a variable with stgclass auto of type: struct s1 (defined at struct2.c:20) s1 is defined at struct2.c:25 [in function scope starting at struct2.c:8] as a variable with stgclass auto of type: struct s1 (defined at struct2.c:15)