xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/printcmds.c (revision b725ae7711052a2233e31a66fefb8a752c388d7a)
1e93f7393Sniklas /* This table is used as a source for every ascii character.
2e93f7393Sniklas    It is explicitly unsigned to avoid differences due to native characters
3e93f7393Sniklas    being either signed or unsigned. */
4*b725ae77Skettenis #include <stdlib.h>
5e93f7393Sniklas unsigned char ctable1[256] = {
6e93f7393Sniklas   0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007,
7e93f7393Sniklas   0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
8e93f7393Sniklas   0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027,
9e93f7393Sniklas   0030, 0031, 0032, 0033, 0034, 0035, 0036, 0037,
10e93f7393Sniklas   0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047,
11e93f7393Sniklas   0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057,
12e93f7393Sniklas   0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067,
13e93f7393Sniklas   0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077,
14e93f7393Sniklas   0100, 0101, 0102, 0103, 0104, 0105, 0106, 0107,
15e93f7393Sniklas   0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117,
16e93f7393Sniklas   0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127,
17e93f7393Sniklas   0130, 0131, 0132, 0133, 0134, 0135, 0136, 0137,
18e93f7393Sniklas   0140, 0141, 0142, 0143, 0144, 0145, 0146, 0147,
19e93f7393Sniklas   0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157,
20e93f7393Sniklas   0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167,
21e93f7393Sniklas   0170, 0171, 0172, 0173, 0174, 0175, 0176, 0177,
22e93f7393Sniklas   0200, 0201, 0202, 0203, 0204, 0205, 0206, 0207,
23e93f7393Sniklas   0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217,
24e93f7393Sniklas   0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227,
25e93f7393Sniklas   0230, 0231, 0232, 0233, 0234, 0235, 0236, 0237,
26e93f7393Sniklas   0240, 0241, 0242, 0243, 0244, 0245, 0246, 0247,
27e93f7393Sniklas   0250, 0251, 0252, 0253, 0254, 0255, 0256, 0257,
28e93f7393Sniklas   0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267,
29e93f7393Sniklas   0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277,
30e93f7393Sniklas   0300, 0301, 0302, 0303, 0304, 0305, 0306, 0307,
31e93f7393Sniklas   0310, 0311, 0312, 0313, 0314, 0315, 0316, 0317,
32e93f7393Sniklas   0320, 0321, 0322, 0323, 0324, 0325, 0326, 0327,
33e93f7393Sniklas   0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337,
34e93f7393Sniklas   0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347,
35e93f7393Sniklas   0350, 0351, 0352, 0353, 0354, 0355, 0356, 0357,
36e93f7393Sniklas   0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367,
37e93f7393Sniklas   0370, 0371, 0372, 0373, 0374, 0375, 0376, 0377
38e93f7393Sniklas };
39e93f7393Sniklas 
40e93f7393Sniklas unsigned char ctable2[] = {
41e93f7393Sniklas   'a','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
42e93f7393Sniklas   'a','a','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
43e93f7393Sniklas   'a','a','a','X','X','X','X','X','X','X','X','X','X','X','X','X',
44e93f7393Sniklas   'a','a','a','a','X','X','X','X','X','X','X','X','X','X','X','X',
45e93f7393Sniklas   'a','a','a','a','a','X','X','X','X','X','X','X','X','X','X','X',
46e93f7393Sniklas   'a','a','a','a','a','a','X','X','X','X','X','X','X','X','X','X',
47e93f7393Sniklas   'a','a','a','a','a','a','a','X','X','X','X','X','X','X','X','X',
48e93f7393Sniklas   'a','a','a','a','a','a','a','a','X','X','X','X','X','X','X','X',
49e93f7393Sniklas   'a','a','a','a','a','a','a','a','a','X','X','X','X','X','X','X',
50e93f7393Sniklas   'a','a','a','a','a','a','a','a','a','a','X','X','X','X','X','X',
51e93f7393Sniklas   'a','a','a','a','a','a','a','a','a','a','a','X','X','X','X','X',
52e93f7393Sniklas   'a','a','a','a','a','a','a','a','a','a','a','a','X','X','X','X',
53e93f7393Sniklas   'a','a','a','a','a','a','a','a','a','a','a','a','a','X','X','X',
54e93f7393Sniklas   'a','a','a','a','a','a','a','a','a','a','a','a','a','a','X','X',
55e93f7393Sniklas   'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','X',
56*b725ae77Skettenis   'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a', 0
57e93f7393Sniklas };
58e93f7393Sniklas 
59e93f7393Sniklas /* Single and multidimensional arrays to test access and printing of array
60e93f7393Sniklas    members. */
61e93f7393Sniklas 
62*b725ae77Skettenis typedef int ArrayInt [10];
63*b725ae77Skettenis ArrayInt a1 = {2,4,6,8,10,12,14,16,18,20};
64*b725ae77Skettenis 
65*b725ae77Skettenis typedef char ArrayChar [5];
66*b725ae77Skettenis ArrayChar a2 = {'a','b','c','d','\0'};
67*b725ae77Skettenis 
68e93f7393Sniklas int int1dim[12] = {0,1,2,3,4,5,6,7,8,9,10,11};
69e93f7393Sniklas int int2dim[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
70e93f7393Sniklas int int3dim[2][3][2] = {{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}};
71e93f7393Sniklas int int4dim[1][2][3][2] = {{{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}}};
72e93f7393Sniklas 
73*b725ae77Skettenis char *teststring = (char*)"teststring contents";
74e93f7393Sniklas 
75e93f7393Sniklas /* Test printing of a struct containing character arrays. */
76e93f7393Sniklas 
77e93f7393Sniklas struct some_arrays {
78e93f7393Sniklas     unsigned char array1[4];
79e93f7393Sniklas     unsigned char array2[1];
80e93f7393Sniklas     unsigned char array3[1];
81e93f7393Sniklas     unsigned char array4[2];
82e93f7393Sniklas     unsigned char array5[4];
83e93f7393Sniklas } arrays = {
84e93f7393Sniklas   {'a', 'b', 'c', '\0'},
85e93f7393Sniklas   {'d'},
86e93f7393Sniklas   {'e'},
87e93f7393Sniklas   {'f', 'g' },
88e93f7393Sniklas   {'h', 'i', 'j', '\0'}
89e93f7393Sniklas };
90e93f7393Sniklas 
91e93f7393Sniklas struct some_arrays *parrays = &arrays;
92e93f7393Sniklas 
93e93f7393Sniklas /* -- */
94e93f7393Sniklas 
main()95*b725ae77Skettenis int main ()
96e93f7393Sniklas {
97e93f7393Sniklas #ifdef usestubs
98e93f7393Sniklas   set_debug_traps();
99e93f7393Sniklas   breakpoint();
100e93f7393Sniklas #endif
101e93f7393Sniklas   malloc(1);
102e93f7393Sniklas 
103e93f7393Sniklas   /* Prevent AIX linker from removing variables.  */
104e93f7393Sniklas   return ctable1[0] + ctable2[0] + int1dim[0] + int2dim[0][0]
105e93f7393Sniklas     + int3dim[0][0][0] + int4dim[0][0][0][0] + teststring[0] +
106*b725ae77Skettenis       *parrays -> array1 + a1[0] + a2[0];
107e93f7393Sniklas }
108