1 struct _obstack_chunk
2 {
3   char  *limit;
4   struct _obstack_chunk *prev;
5   char	contents[4];
6 };
7 
8 struct obstack
9 {
10   long	chunk_size;
11   struct _obstack_chunk* chunk;
12   char	*object_base;
13   char	*next_free;
14   char	*chunk_limit;
15   int	temp;
16   int   alignment_mask;
17   struct _obstack_chunk *(*chunkfun) ();
18   void (*freefun) ();
19 };
20 
21 struct fooalign {char x; double d;};
22 union fooround {long x; double d;};
23 
24 void
_obstack_begin(h,size,alignment,chunkfun,freefun)25 _obstack_begin (h, size, alignment, chunkfun, freefun)
26      struct obstack *h;
27      int size;
28      int alignment;
29      void *  (*chunkfun) ();
30      void (*freefun) ();
31 {
32   register struct _obstack_chunk* chunk;
33 
34   if (alignment == 0)
35     alignment = ((char *)&((struct fooalign *) 0)->d - (char *)0);
36   if (size == 0)
37     {
38       int extra = 4;
39       if (extra < (sizeof (union fooround)))
40 	extra = (sizeof (union fooround));
41     }
42 }
43