packaging: Add python3-base dependency
[platform/upstream/gdb.git] / gdb / testsuite / gdb.python / py-type.c
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2009-2023 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18 struct s
19 {
20   int a;
21   int b;
22 };
23
24 struct SS
25 {
26   union { int x; char y; };
27   union { int a; char b; };
28 };
29
30 typedef struct s TS;
31 TS ts;
32
33 int aligncheck;
34
35 union UU
36 {
37   int i;
38   float f;
39   int a[5];
40 };
41
42 #ifdef __cplusplus
43 struct C
44 {
45   int c;
46   int d;
47
48   int
49   a_method (int x, char y)
50     {
51       return x + y;
52     }
53
54   int
55   a_const_method (int x, char y) const
56     {
57       return x + y;
58     }
59
60   static int
61   a_static_method (int x, char y)
62     {
63       return x + y;
64     }
65 };
66
67 struct D : C
68 {
69   int e;
70   int f;
71 };
72
73 template<typename T, int I, int C::*MP>
74 struct Temargs
75 {
76 };
77
78 Temargs<D, 23, &C::c> temvar;
79
80 #endif
81
82 unsigned char global_unsigned_char;
83 char global_char;
84 signed char global_signed_char;
85
86 unsigned int global_unsigned_int;
87 int global_int;
88 signed int global_signed_int;
89
90 enum E
91 { v1, v2, v3
92 };
93
94 struct s vec_data_1 = {1, 1};
95 struct s vec_data_2 = {1, 2};
96
97 static int
98 a_function (int x, char y)
99 {
100   return x + y;
101 }
102
103 int
104 main ()
105 {
106   int ar[2] = {1,2};
107   struct s st;
108   struct SS ss;
109   union UU uu;
110 #ifdef __cplusplus
111   C c;
112   c.c = 1;
113   c.d = 2;
114   D d;
115   d.e = 3;
116   d.f = 4;
117
118   c.a_method (0, 1);
119   c.a_const_method (0, 1);
120   C::a_static_method (0, 1);
121 #endif
122   enum E e;
123
124   st.a = 3;
125   st.b = 5;
126
127   e = v2;
128
129   ss.x = 100;
130
131   a_function (0, 1);
132
133   return 0;      /* break to inspect struct and array.  */
134 }