mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
4a94e36819
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
233 lines
3.0 KiB
C
233 lines
3.0 KiB
C
/* This testcase is part of GDB, the GNU debugger.
|
|
|
|
Copyright 2019-2022 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;
|
|
}
|