1struct M; 2 3struct S { 4 int x; 5 M * m; 6}; 7 8struct M { 9 int a; 10 S * s; 11}; 12 13struct T { 14 S s; 15 int a; 16}; 17 18struct U { 19 struct { 20 S s; 21 }; 22 int r; 23}; 24 25void reg1(S*, T*, T*) { } 26void reg2(U*) { } 27