gdb/
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / pointers.c
1
2 #if !defined (__STDC__) && !defined (_AIX)
3 #define signed /**/
4 #endif
5
6 char v_char;
7 signed char v_signed_char;
8 unsigned char v_unsigned_char;
9
10 short v_short;
11 signed short v_signed_short;
12 unsigned short v_unsigned_short;
13
14 int v_int;
15 signed int v_signed_int;
16 unsigned int v_unsigned_int;
17
18 long v_long;
19 signed long v_signed_long;
20 unsigned long v_unsigned_long;
21
22 float v_float;
23 double v_double;
24
25
26
27 char *v_char_pointer;
28 signed char *v_signed_char_pointer;
29 unsigned char *v_unsigned_char_pointer;
30
31 short *v_short_pointer;
32 signed short *v_signed_short_pointer;
33 unsigned short *v_unsigned_short_pointer;
34
35 int *v_int_pointer;
36 int *v_int_pointer2;
37 signed int *v_signed_int_pointer;
38 unsigned int *v_unsigned_int_pointer;
39
40 long *v_long_pointer;
41 signed long *v_signed_long_pointer;
42 unsigned long *v_unsigned_long_pointer;
43
44 float *v_float_pointer;
45 double *v_double_pointer;
46
47
48 char v_char_array[2];
49 signed char v_signed_char_array[2];
50 unsigned char v_unsigned_char_array[2];
51
52 short v_short_array[2];
53 signed short v_signed_short_array[2];
54 unsigned short v_unsigned_short_array[2];
55
56 int v_int_array[2];
57 signed int v_signed_int_array[2];
58 unsigned int v_unsigned_int_array[2];
59
60 long v_long_array[2];
61 signed long v_signed_long_array[2];
62 unsigned long v_unsigned_long_array[2];
63
64 float v_float_array[2];
65 double v_double_array[2];
66
67 int matrix[2][3] = { { 0, 1, 2}, {3, 4, 5}};
68 int (*rptr)[3] = matrix;
69
70 float ** ptr_to_ptr_to_float;
71
72 int y;
73
74
75 typedef long k[5];
76
77 typedef struct {
78 k array_variable;
79 } S;
80
81 S instance;
82
83 /* Do nothing function used for forcing some of the above variables to
84 be referenced by the program source. If the variables are not
85 referenced, some linkers will remove the symbol from the symbol
86 table making it impossible to refer to the variable in gdb. */
87 void usevar (void *var) {}
88
89 int main ()
90 {
91 void dummy();
92 int more_code();
93
94 #ifdef usestubs
95 set_debug_traps();
96 breakpoint();
97 #endif
98 dummy();
99
100 more_code ();
101
102 usevar (&v_int_pointer2);
103 usevar (&rptr);
104 usevar (&y);
105
106 return 0;
107
108 }
109
110 void dummy()
111 {
112
113
114 v_char = 0;
115 v_signed_char = 1;
116 v_unsigned_char = 2;
117
118 v_short = 3;
119 v_signed_short = 4;
120 v_unsigned_short = 5;
121
122 v_int = 6;
123 v_signed_int = 7;
124 v_unsigned_int = 8;
125
126 v_long = 9;
127 v_signed_long = 10;
128 v_unsigned_long = 11;
129
130 v_float = 100.0;
131 v_double = 200.0;
132
133
134
135 v_char_pointer = &v_char;
136 v_signed_char_pointer = &v_signed_char;
137 v_unsigned_char_pointer = &v_unsigned_char;
138
139 v_short_pointer = &v_short;
140 v_signed_short_pointer = &v_signed_short;
141 v_unsigned_short_pointer = &v_unsigned_short;
142
143 v_int_pointer = &v_int;
144 v_signed_int_pointer = &v_signed_int;
145 v_unsigned_int_pointer = &v_unsigned_int;
146
147 v_long_pointer = &v_long;
148 v_signed_long_pointer = &v_signed_long;
149 v_unsigned_long_pointer = &v_unsigned_long;
150
151 v_float_pointer = &v_float;
152 v_double_pointer = &v_double;
153
154 ptr_to_ptr_to_float = &v_float_pointer;
155
156
157 v_char_array[0] = v_char;
158 v_signed_char_array[0] = v_signed_char;
159 v_unsigned_char_array[0] = v_unsigned_char;
160
161 v_short_array[0] = v_short;
162 v_signed_short_array[0] = v_signed_short;
163 v_unsigned_short_array[0] = v_unsigned_short;
164
165 v_int_array[0] = v_int;
166 v_int_array[1] = v_int * 3;
167
168 v_signed_int_array[0] = v_signed_int;
169 v_unsigned_int_array[0] = v_unsigned_int;
170
171 v_long_array[0] = v_long;
172 v_signed_long_array[0] = v_signed_long;
173 v_unsigned_long_array[0] = v_unsigned_long;
174
175 v_float_array[0] = v_float;
176 v_double_array[0] = v_double;
177
178 }
179
180 void marker1 ()
181 {
182 }
183
184 int more_code()
185 {
186 char C, *pC, **ppC, ***pppC, ****ppppC, *****pppppC, ******ppppppC;
187 unsigned char UC, *pUC;
188 short S, *pS;
189 unsigned short US, *pUS;
190 int I, *pI;
191 unsigned int UI, *pUI;
192 long L, *pL;
193 unsigned long UL, *pUL;
194 float F, *pF;
195 double D, *pD;
196
197 C = 'A';
198 UC = 21;
199 S = -14;
200 US = 7;
201 I = 102;
202 UI = 1002;
203 L = -234;
204 UL = 234;
205 F = 1.25E10;
206 D = -1.25E-37;
207 pC = &C;
208 ppC = &pC;
209 pppC = &ppC;
210 ppppC = &pppC;
211 pppppC = &ppppC;
212 ppppppC = &pppppC;
213 pUC = &UC;
214 pS = &S;
215 pUS = &US;
216 pI = &I;
217 pUI = &UI;
218 pL = &L;
219 pUL = &UL;
220 pF = &F;
221 pD = &D;
222
223 marker1();
224 return 0;
225 }
This page took 0.043406 seconds and 4 git commands to generate.