xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/consistency.vlad/layout/s-float-a-pointer.c (revision f6aab3d83b51b91c24247ad2c2573574de475a82)
1 #include <stdio.h>
2 
3 static struct sss{
4   float f;
5   char * a[10];
6 } sss;
7 
8 #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
9 
10 int main (void) {
11   printf ("++++Array of pointer in struct starting with float:\n");
12   printf ("size=%d,align=%d\n",
13           sizeof (sss), __alignof__ (sss));
14   printf ("offset-float=%d,offset-arrayof-pointer=%d,\nalign-float=%d,align-arrayof-pointer=%d\n",
15           _offsetof (struct sss, f), _offsetof (struct sss, a),
16           __alignof__ (sss.f), __alignof__ (sss.a));
17   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
18           _offsetof (struct sss, a[5]),
19           __alignof__ (sss.a[5]));
20   return 0;
21 }
22