1 /* This table is used as a source for every ascii character.
2 It is explicitly unsigned to avoid differences due to native characters
3 being either signed or unsigned. */
5 unsigned char ctable1
[256] = {
6 0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007,
7 0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
8 0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027,
9 0030, 0031, 0032, 0033, 0034, 0035, 0036, 0037,
10 0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047,
11 0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057,
12 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067,
13 0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077,
14 0100, 0101, 0102, 0103, 0104, 0105, 0106, 0107,
15 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117,
16 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127,
17 0130, 0131, 0132, 0133, 0134, 0135, 0136, 0137,
18 0140, 0141, 0142, 0143, 0144, 0145, 0146, 0147,
19 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157,
20 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167,
21 0170, 0171, 0172, 0173, 0174, 0175, 0176, 0177,
22 0200, 0201, 0202, 0203, 0204, 0205, 0206, 0207,
23 0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217,
24 0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227,
25 0230, 0231, 0232, 0233, 0234, 0235, 0236, 0237,
26 0240, 0241, 0242, 0243, 0244, 0245, 0246, 0247,
27 0250, 0251, 0252, 0253, 0254, 0255, 0256, 0257,
28 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267,
29 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277,
30 0300, 0301, 0302, 0303, 0304, 0305, 0306, 0307,
31 0310, 0311, 0312, 0313, 0314, 0315, 0316, 0317,
32 0320, 0321, 0322, 0323, 0324, 0325, 0326, 0327,
33 0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337,
34 0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347,
35 0350, 0351, 0352, 0353, 0354, 0355, 0356, 0357,
36 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367,
37 0370, 0371, 0372, 0373, 0374, 0375, 0376, 0377
40 unsigned char ctable2
[] = {
41 'a','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
42 'a','a','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
43 'a','a','a','X','X','X','X','X','X','X','X','X','X','X','X','X',
44 'a','a','a','a','X','X','X','X','X','X','X','X','X','X','X','X',
45 'a','a','a','a','a','X','X','X','X','X','X','X','X','X','X','X',
46 'a','a','a','a','a','a','X','X','X','X','X','X','X','X','X','X',
47 'a','a','a','a','a','a','a','X','X','X','X','X','X','X','X','X',
48 'a','a','a','a','a','a','a','a','X','X','X','X','X','X','X','X',
49 'a','a','a','a','a','a','a','a','a','X','X','X','X','X','X','X',
50 'a','a','a','a','a','a','a','a','a','a','X','X','X','X','X','X',
51 'a','a','a','a','a','a','a','a','a','a','a','X','X','X','X','X',
52 'a','a','a','a','a','a','a','a','a','a','a','a','X','X','X','X',
53 'a','a','a','a','a','a','a','a','a','a','a','a','a','X','X','X',
54 'a','a','a','a','a','a','a','a','a','a','a','a','a','a','X','X',
55 'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','X',
56 'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a', 0
59 /* Single and multidimensional arrays to test access and printing of array
62 typedef int ArrayInt
[10];
63 ArrayInt a1
= {2,4,6,8,10,12,14,16,18,20};
65 typedef char ArrayChar
[5];
66 ArrayChar a2
= {'a','b','c','d','\0'};
68 int int1dim
[12] = {0,1,2,3,4,5,6,7,8,9,10,11};
69 int int2dim
[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
70 int int3dim
[2][3][2] = {{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}};
71 int int4dim
[1][2][3][2] = {{{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}}};
73 char *teststring
= (char*)"teststring contents";
75 typedef char *charptr
;
76 charptr teststring2
= "more contents";
78 /* Test printing of a struct containing character arrays. */
81 unsigned char array1
[4];
82 unsigned char array2
[1];
83 unsigned char array3
[1];
84 unsigned char array4
[2];
85 unsigned char array5
[4];
87 {'a', 'b', 'c', '\0'},
94 struct some_arrays
*parrays
= &arrays
;
96 enum some_volatile_enum
{ enumvolval1
, enumvolval2
};
98 /* A volatile enum variable whose name is the same as the enumeration
100 volatile enum some_volatile_enum some_volatile_enum
= enumvolval1
;
102 /* An enum considered as a "flag enum". */
108 FE_TWO_LEGACY
= 0x02,
111 enum flag_enum three
= FE_ONE
| FE_TWO
;
113 /* Another enum considered as a "flag enum", but with no enumerator with value
115 enum flag_enum_without_zero
121 enum flag_enum_without_zero flag_enum_without_zero
= 0;
123 /* Not a flag enum, an enumerator value has multiple bits sets. */
131 enum not_flag_enum three_not_flag
= NFE_ONE
| NFE_TWO
;
133 /* A structure with an embedded array at an offset > 0. The array has
134 all elements with the same repeating value, which must not be the
135 same as the value of the preceding fields in the structure for the
136 test to be effective. This tests whether GDB uses the correct
137 element content offsets (relative to the complete `some_struct'
138 value) when counting value repetitions. */
143 unsigned char array
[20];
148 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
149 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
150 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
151 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
155 /* The following variables are used for testing byte repeat sequences.
156 The variable names are encoded: invalid_XYZ where:
161 Each of X and Z can be "E" (empty), "S" (single), "L" (long single),
164 Y can be either any of the above except "E" (otherwise there is nothing
166 char invalid_ESE
[] = "\240";
167 char invalid_SSE
[] = "a\240";
168 char invalid_LSE
[] = "abaabbaaabbb\240";
169 char invalid_RSE
[] = "aaaaaaaaaaaaaaaaaaaa\240";
170 char invalid_ESS
[] = "\240c";
171 char invalid_SSS
[] = "a\240c";
172 char invalid_LSS
[] = "abaabbaaabbb\240c";
173 char invalid_RSS
[] = "aaaaaaaaaaaaaaaaaaaa\240c";
174 char invalid_ESL
[] = "\240cdccddcccddd";
175 char invalid_SSL
[] = "a\240cdccddcccddd";
176 char invalid_LSL
[] = "abaabbaaabbb\240cdccddcccddd";
177 char invalid_RSL
[] = "aaaaaaaaaaaaaaaaaaaa\240cdccddcccddd";
178 char invalid_ESR
[] = "\240cccccccccccccccccccc";
179 char invalid_SSR
[] = "a\240cccccccccccccccccccc";
180 char invalid_LSR
[] = "abaabbaaabbb\240cccccccccccccccccccc";
181 char invalid_RSR
[] = "aaaaaaaaaaaaaaaaaaaa\240cccccccccccccccccccc";
182 char invalid_ELE
[] = "\240\240\240\240";
183 char invalid_SLE
[] = "a\240\240\240\240";
184 char invalid_LLE
[] = "abaabbaaabbb\240\240\240\240";
185 char invalid_RLE
[] = "aaaaaaaaaaaaaaaaaaaa\240\240\240\240";
186 char invalid_ELS
[] = "\240\240\240\240c";
187 char invalid_SLS
[] = "a\240\240\240\240c";
188 char invalid_LLS
[] = "abaabbaaabbb\240\240\240\240c";
189 char invalid_RLS
[] = "aaaaaaaaaaaaaaaaaaaa\240\240\240\240c";
190 char invalid_ELL
[] = "\240\240\240\240cdccddcccddd";
191 char invalid_SLL
[] = "a\240\240\240\240cdccddcccddd";
192 char invalid_LLL
[] = "abaabbaaabbb\240\240\240\240cdccddcccddd";
193 char invalid_RLL
[] = "aaaaaaaaaaaaaaaaaaaa\240\240\240\240cdccddcccddd";
194 char invalid_ELR
[] = "\240\240\240\240cccccccccccccccccccc";
195 char invalid_SLR
[] = "a\240\240\240\240cccccccccccccccccccc";
196 char invalid_LLR
[] = "abaabbaaabbb\240\240\240\240cccccccccccccccccccc";
197 char invalid_RLR
[] = "aaaaaaaaaaaaaaaaaaaa\240\240\240\240cccccccccccccccccccc";
198 char invalid_ERE
[] = ""
199 "\240\240\240\240\240\240\240\240\240\240"
200 "\240\240\240\240\240\240\240\240\240\240";
201 char invalid_LRE
[] = "abaabbaaabbb"
202 "\240\240\240\240\240\240\240\240\240\240"
203 "\240\240\240\240\240\240\240\240\240\240";
204 char invalid_RRE
[] = "aaaaaaaaaaaaaaaaaaaa"
205 "\240\240\240\240\240\240\240\240\240\240"
206 "\240\240\240\240\240\240\240\240\240\240";
207 char invalid_ERS
[] = ""
208 "\240\240\240\240\240\240\240\240\240\240"
209 "\240\240\240\240\240\240\240\240\240\240c";
210 char invalid_ERL
[] = ""
211 "\240\240\240\240\240\240\240\240\240\240"
212 "\240\240\240\240\240\240\240\240\240\240cdccddcccddd";
213 char invalid_ERR
[] = ""
214 "\240\240\240\240\240\240\240\240\240\240"
215 "\240\240\240\240\240\240\240\240\240\240cccccccccccccccccccc";
216 char invalid_SRE
[] = "a"
217 "\240\240\240\240\240\240\240\240\240\240"
218 "\240\240\240\240\240\240\240\240\240\240";
219 char invalid_SRS
[] = "a"
220 "\240\240\240\240\240\240\240\240\240\240"
221 "\240\240\240\240\240\240\240\240\240\240c";
222 char invalid_SRL
[] = "a"
223 "\240\240\240\240\240\240\240\240\240\240"
224 "\240\240\240\240\240\240\240\240\240\240cdccddcccddd";
225 char invalid_SRR
[] = "a"
226 "\240\240\240\240\240\240\240\240\240\240"
227 "\240\240\240\240\240\240\240\240\240\240cccccccccccccccccccc";
228 char invalid_LRS
[] = "abaabbaaabbb"
229 "\240\240\240\240\240\240\240\240\240\240"
230 "\240\240\240\240\240\240\240\240\240\240c";
231 char invalid_LRL
[] = "abaabbaaabbb"
232 "\240\240\240\240\240\240\240\240\240\240"
233 "\240\240\240\240\240\240\240\240\240\240cdccddcccddd";
234 char invalid_LRR
[] = "abaabbaaabbb"
235 "\240\240\240\240\240\240\240\240\240\240"
236 "\240\240\240\240\240\240\240\240\240\240cccccccccccccccccccc";
237 char invalid_RRS
[] = "aaaaaaaaaaaaaaaaaaaa"
238 "\240\240\240\240\240\240\240\240\240\240"
239 "\240\240\240\240\240\240\240\240\240\240c";
240 char invalid_RRL
[] = "aaaaaaaaaaaaaaaaaaaa"
241 "\240\240\240\240\240\240\240\240\240\240"
242 "\240\240\240\240\240\240\240\240\240\240cdccddcccddd";
243 char invalid_RRR
[] = "aaaaaaaaaaaaaaaaaaaa"
244 "\240\240\240\240\240\240\240\240\240\240"
245 "\240\240\240\240\240\240\240\240\240\240cccccccccccccccccccc";
251 void *p
= malloc (1);
253 /* Prevent AIX linker from removing variables. */
254 return ctable1
[0] + ctable2
[0] + int1dim
[0] + int2dim
[0][0]
255 + int3dim
[0][0][0] + int4dim
[0][0][0][0] + teststring
[0] +
256 *parrays
-> array1
+ a1
[0] + a2
[0];