blob: 004151d6fc9ccf82adcf4b03a4b317a86f24b174 [file] [log] [blame]
/* This testcase is part of GDB, the GNU debugger.
Copyright 2019-2021 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 <http://www.gnu.org/licenses/>. */
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;
}