1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 int main ()
5 {
6 struct foo {
7   unsigned base:8;
8   unsigned flag1:1;
9   unsigned flag2:3;
10   unsigned flag3:4;
11   char nothing[0];
12 };
13 
14 #define offsetof(TYPE, MEMBER)	((size_t) &((TYPE *) 0)->MEMBER)
15 
16 struct foo* f = (struct foo *) malloc (offsetof (struct foo, nothing));
17 f->base = 1;
18 f->flag1 = 1;
19 free (f);
20 
21 
22 return 0;
23 }
24