| /* { dg-do compile } */ |
| /* { dg-options "-w -O2 -g -fselective-scheduling2" } */ |
| |
| typedef long unsigned int size_t; |
| struct fileloc |
| { |
| const char *file; |
| }; |
| typedef struct type *type_p; |
| typedef const struct type *const_type_p; |
| enum typekind |
| { |
| TYPE_STRUCT, |
| TYPE_UNION, |
| TYPE_POINTER, |
| TYPE_LANG_STRUCT, |
| TYPE_PARAM_STRUCT |
| }; |
| struct type |
| { |
| enum typekind kind; |
| union |
| { |
| struct |
| { |
| struct fileloc line; |
| } s; |
| struct |
| { |
| struct fileloc line; |
| } param_struct; |
| } u; |
| }; |
| struct outf |
| { |
| size_t bufused; |
| char *buf; |
| }; |
| typedef struct outf *outf_p; |
| oprintf (outf_p o, const char *format, ...) |
| { |
| char *s; |
| size_t slength; |
| memcpy (o->buf + o->bufused, s, slength); |
| } |
| output_mangled_typename (outf_p of, const_type_p t) |
| { |
| switch (t->kind) |
| { |
| case TYPE_POINTER: (fancy_abort ("/gcc/gengtype.c", 1988, __FUNCTION__)); |
| } |
| } |
| output_type_enum (outf_p of, type_p s) |
| { |
| if (s->kind == TYPE_PARAM_STRUCT && s->u.param_struct.line.file != ((void *)0)) |
| { |
| oprintf (of, ", gt_e_"); |
| } |
| else if (((s)->kind == TYPE_UNION || (s)->kind == TYPE_STRUCT || (s)->kind == TYPE_LANG_STRUCT) && s->u.s.line.file != ((void *)0)) |
| { |
| oprintf (of, ", gt_ggc_e_"); |
| output_mangled_typename (of, s); |
| } |
| else |
| oprintf (of, ", gt_types_enum_last"); |
| } |