1*c87b03e5Sespie #include <stdio.h>
2*c87b03e5Sespie 
3*c87b03e5Sespie class c{
4*c87b03e5Sespie public:
5*c87b03e5Sespie   char f;
6*c87b03e5Sespie };
7*c87b03e5Sespie 
8*c87b03e5Sespie class c2{
9*c87b03e5Sespie public:
10*c87b03e5Sespie   float f2;
11*c87b03e5Sespie };
12*c87b03e5Sespie 
13*c87b03e5Sespie 
14*c87b03e5Sespie static class sss: public c, public c2{
15*c87b03e5Sespie public:
16*c87b03e5Sespie   char m;
17*c87b03e5Sespie } sss;
18*c87b03e5Sespie 
19*c87b03e5Sespie #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
20*c87b03e5Sespie 
main(void)21*c87b03e5Sespie int main (void) {
22*c87b03e5Sespie   printf ("++Class with char inhereting classes with char & float:\n");
23*c87b03e5Sespie   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
24*c87b03e5Sespie   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
25*c87b03e5Sespie           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
26*c87b03e5Sespie           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
27*c87b03e5Sespie   return 0;
28*c87b03e5Sespie }
29