summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/pr45109.c
blob: 0e46c38409f10369eec257c856b8cce834277a29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
struct o_fsm_t;
struct o_fsm_event_t;

typedef void (*fn_t) (struct o_fsm_t *,
		      struct o_fsm_event_t const *);

struct o_fsm_state_t {
    fn_t dispatch;
};

struct o_fsm_t {
    fn_t dispatch;
};

extern struct o_fsm_state_t o_fsm_tran(struct o_fsm_t *fsm,
				       struct o_fsm_state_t next_state);
static void plist_parser_state_start(struct o_fsm_t *fsm,
				     struct o_fsm_event_t const *fsm_event);

struct o_fsm_state_t o_fsm_state(fn_t dispatch_fcn)
{
  return *(struct o_fsm_state_t *)&dispatch_fcn;
}

typedef struct _o_plist_parser_t {
    struct o_fsm_t fsm;
} o_plist_parser_t;

static void plist_parser_state_start(struct o_fsm_t *fsm,
				     struct o_fsm_event_t const *fsm_event)
{
}

void o_plist_deserialize_xml(int fin)
{
  o_plist_parser_t parser;
  o_fsm_tran(&parser.fsm, o_fsm_state(plist_parser_state_start));
}