summaryrefslogtreecommitdiffstats
path: root/tests/run-make/return-non-c-like-enum-from-c/test.c
blob: 3ad135bab4a1e986c33ba940427ab52548d3688b (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdint.h>

/* This is the code generated by cbindgen 0.12.1 for the `enum TT`
 * type in nonclike.rs . */
enum TT_Tag {
  AA,
  BB,
};
typedef uint8_t TT_Tag;

typedef struct {
  uint64_t _0;
  uint64_t _1;
} AA_Body;

typedef struct {
  TT_Tag tag;
  union {
    AA_Body aa;
  };
} TT;

/* This is the code generated by cbindgen 0.12.1 for the `enum T` type
 * in nonclike.rs . */
enum T_Tag {
  A,
  B,
};
typedef uint8_t T_Tag;

typedef struct {
  uint64_t _0;
} A_Body;

typedef struct {
  T_Tag tag;
  union {
    A_Body a;
  };
} T;

TT tt_new(uint64_t a, uint64_t b) {
  TT tt = {
    .tag = AA,
    .aa = {
      ._0 = a,
      ._1 = b,
    },
  };
  return tt;
}

T t_new(uint64_t a) {
  T t = {
    .tag = A,
    .a = {
      ._0 = a,
    },
  };
  return t;
}