/* This testcase is part of GDB, the GNU debugger. Copyright 2019-2020 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ struct s1 { int x; int y; } s1; struct s2 { int x; int y; struct { int z; int a; }; } s2; struct s3 { int x; int y; struct { int z; int a; struct { int b; int c; }; }; } s3; struct s4 { int x; int y; struct { int x; int y; struct { int x; int y; } l2; } l1; } s4; struct s5 { union { int raw[3]; struct { int x; int y; int z; }; }; } s5; typedef struct { union { int raw[3]; struct { int x; int y; int z; }; }; } s6_t; s6_t s6; struct s7 { struct { int x; int y; }; struct { int z; int a; }; struct { int b; int c; }; } s7; struct s8 { int x; int y; struct { int z; int a; struct { int b; int c; }; } d1; } s8; struct s9 { int x; int y; struct { int k; int j; struct { int z; int a; struct { int b; int c; }; } d1; }; struct { int z; int a; struct { int b; int c; }; } d2; } s9; struct s10 { int x[10]; int y; struct { int k[10]; int j; struct { int z; int a; struct { int b[10]; int c; }; } d1; }; struct { int z; int a; struct { int b[10]; int c; }; } d2; } s10; struct s11 { int x; char s[10]; struct { int z; int a; }; } s11; /* The following are C++ inheritance testing. */ #ifdef __cplusplus /* This is non-virtual inheritance. */ struct C1 { int c1 = 1; } c1; struct C2 { int c2 = 2; } c2; struct C3 : C2 { int c3 = 3; } c3; struct C4 { int c4 = 4; } c4; struct C5 : C4 { int c5 = 5; } c5; struct C6 : C5 { int c6 = 6; } c6; struct C7 : C1, C3, C6 { int c7 = 7; } c7; /* This is virtual inheritance. */ struct V1 { int v1 = 1; } v1; struct V2 : virtual V1 { int v2 = 2; } v2; struct V3 : virtual V1 { int v3 = 3; } v3; struct V4 : virtual V2 { int v4 = 4; } v4; struct V5 : virtual V2 { int v5 = 1; } v5; struct V6 : virtual V2, virtual V3 { int v6 = 1; } v6; struct V7 : virtual V4, virtual V5, virtual V6 { int v7 = 1; } v7; #endif /* __cplusplus */ int main () { return 0; }