+++ /dev/null
-struct obstack
-{
- long chunk_size;
- struct _obstack_chunk *chunk;
- char *object_base;
- char *next_free;
- char *chunk_limit;
- int alignment_mask;
- unsigned maybe_empty_object;
-};
-
-struct objfile
- {
- struct objfile *next;
- struct obstack type_obstack;
- };
-
-struct type
- {
- unsigned length;
- struct objfile *objfile;
- short nfields;
- struct field
- {
- union field_location
- {
- int bitpos;
- unsigned long physaddr;
- char *physname;
- }
- loc;
- int bitsize;
- struct type *type;
- char *name;
- }
- *fields;
- };
-
-struct type *alloc_type (void);
-void * xmalloc (unsigned int z);
-void _obstack_newchunk (struct obstack *o, int i);
-void get_discrete_bounds (long long *lowp, long long *highp);
-
-extern void *memset(void *, int, __SIZE_TYPE__);
-
-struct type *
-create_array_type (struct type *result_type, struct type *element_type)
-{
- long long low_bound, high_bound;
- if (result_type == ((void *)0))
- {
- result_type = alloc_type ();
- }
- get_discrete_bounds (&low_bound, &high_bound);
- (result_type)->length =
- (element_type)->length * (high_bound - low_bound + 1);
- (result_type)->nfields = 1;
- (result_type)->fields =
- (struct field *) ((result_type)->objfile != ((void *)0)
- ? (
- {
- struct obstack *__h =
- (&(result_type)->objfile -> type_obstack);
- {
- struct obstack *__o = (__h);
- int __len = ((sizeof (struct field)));
- if (__o->chunk_limit - __o->next_free < __len)
- _obstack_newchunk (__o, __len);
- __o->next_free += __len; (void) 0;
- };
- ({
- struct obstack *__o1 = (__h);
- void *value;
- value = (void *) __o1->object_base;
- if (__o1->next_free == value)
- __o1->maybe_empty_object = 1;
- __o1->next_free = (((((__o1->next_free) - (char *) 0)
- +__o1->alignment_mask)
- & ~ (__o1->alignment_mask))
- + (char *) 0);
- if (__o1->next_free - (char *)__o1->chunk
- > __o1->chunk_limit - (char *)__o1->chunk)
- __o1->next_free = __o1->chunk_limit;
- __o1->object_base = __o1->next_free;
- value;
- });
- }) : xmalloc (sizeof (struct field)));
- return (result_type);
-}
-
-struct type *
-alloc_type (void)
-{
- abort ();
-}
-void * xmalloc (unsigned int z)
-{
- return 0;
-}
-void _obstack_newchunk (struct obstack *o, int i)
-{
- abort ();
-}
-void
-get_discrete_bounds (long long *lowp, long long *highp)
-{
- *lowp = 0;
- *highp = 2;
-}
-
-int main(void)
-{
- struct type element_type;
- struct type result_type;
-
- memset (&element_type, 0, sizeof (struct type));
- memset (&result_type, 0, sizeof (struct type));
- element_type.length = 4;
- create_array_type (&result_type, &element_type);
- if (result_type.length != 12)
- abort ();
- exit (0);
-}