• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/gdb/gdb/testsuite/gdb.base/
1#include <stdio.h>
2
3typedef char padding[16];
4
5struct {
6  padding p1;
7  char v;
8  padding p2;
9} padding_char;
10
11struct {
12  padding p1;
13  short v;
14  padding p2;
15} padding_short;
16
17struct {
18  padding p1;
19  int v;
20  padding p2;
21} padding_int;
22
23struct {
24  padding p1;
25  long v;
26  padding p2;
27} padding_long;
28
29struct {
30  padding p1;
31  long long v;
32  padding p2;
33} padding_long_long;
34
35struct {
36  padding p1;
37  float v;
38  padding p2;
39} padding_float;
40
41struct {
42  padding p1;
43  double v;
44  padding p2;
45} padding_double;
46
47struct {
48  padding p1;
49  long double v;
50  padding p2;
51} padding_long_double;
52
53static void
54fill (void *buf, long sizeof_buf)
55{
56  char *p = buf;
57  int i;
58  for (i = 0; i < sizeof_buf; i++)
59    p[i] = "The quick brown dingo jumped over the layzy dog."[i];
60}
61
62void
63fill_structs (void)
64{
65  fill (&padding_char.p1, sizeof (padding));
66  fill (&padding_char.v, sizeof (padding_char.v));
67  fill (&padding_char.p2, sizeof (padding));
68
69  fill (&padding_short.p1, sizeof (padding));
70  fill (&padding_short.v, sizeof (padding_short.v));
71  fill (&padding_short.p2, sizeof (padding));
72
73  fill (&padding_int.p1, sizeof (padding));
74  fill (&padding_int.v, sizeof (padding_int.v));
75  fill (&padding_int.p2, sizeof (padding));
76
77  fill (&padding_long.p1, sizeof (padding));
78  fill (&padding_long.v, sizeof (padding_long.v));
79  fill (&padding_long.p2, sizeof (padding));
80
81  fill (&padding_long_long.p1, sizeof (padding));
82  fill (&padding_long_long.v, sizeof (padding_long_long.v));
83  fill (&padding_long_long.p2, sizeof (padding));
84
85  fill (&padding_float.p1, sizeof (padding));
86  fill (&padding_float.v, sizeof (padding_float.v));
87  fill (&padding_float.p2, sizeof (padding));
88
89  fill (&padding_double.p1, sizeof (padding));
90  fill (&padding_double.v, sizeof (padding_double.v));
91  fill (&padding_double.p2, sizeof (padding));
92
93  fill (&padding_long_double.p1, sizeof (padding));
94  fill (&padding_long_double.v, sizeof (padding_long_double.v));
95  fill (&padding_long_double.p2, sizeof (padding));
96}
97
98int
99main ()
100{
101  fill_structs ();
102
103  printf ("sizeof (char) == %d\n", sizeof (char));
104  printf ("sizeof (short) == %d\n", sizeof (short));
105  printf ("sizeof (int) == %d\n", sizeof (int));
106  printf ("sizeof (long) == %d\n", sizeof (long));
107  printf ("sizeof (long long) == %d\n", sizeof (long long));
108
109  printf ("sizeof (void *) == %d\n", sizeof (void*));
110  printf ("sizeof (void (*)(void)) == %d\n", sizeof (void (*)(void)));
111
112  printf ("sizeof (float) == %d\n", sizeof (float));
113  printf ("sizeof (double) == %d\n", sizeof (double));
114  printf ("sizeof (long double) == %d\n", sizeof (long double));
115
116  /* Signed char?  */
117  printf ("valueof ('\\377') == %d\n", '\377');
118  printf ("valueof ((int) (char) -1) == %d\n", (int) (char) -1);
119  printf ("valueof ((int) (signed char) -1) == %d\n", (int) (signed char) -1);
120  printf ("valueof ((int) (unsigned char) -1) == %d\n", (int) (unsigned char) -1);
121
122  return 0;
123}
124