1typedef enum { POSITION_ASIS, POSITION_UNSPECIFIED } unit_position;
2
3typedef enum { STATUS_UNKNOWN, STATUS_UNSPECIFIED } unit_status;
4
5typedef struct
6{
7  unit_position position;
8  unit_status status;
9} unit_flags;
10
11extern void abort (void);
12
13void
14new_unit (unit_flags * flags)
15{
16  if (flags->status == STATUS_UNSPECIFIED)
17    flags->status = STATUS_UNKNOWN;
18
19  if (flags->position == POSITION_UNSPECIFIED)
20    flags->position = POSITION_ASIS;
21
22  switch (flags->status)
23    {
24    case STATUS_UNKNOWN:
25      break;
26
27    default:
28      abort ();
29    }
30}
31
32int main()
33{
34  unit_flags f;
35  f.status = STATUS_UNSPECIFIED;
36  new_unit (&f);
37  return 0;
38}
39