Files
cbindgen/tests/expectations/enum_both.compat.c
T
Jonathan Schwender 51a981cefc Rename expectations files
Rename expectation files to contain only one dot.
This is needed for the Cython tests as of Cython 3.
The following script was used in a clean repository
to rename the files:

```sh
 ls | sed -E -n 's/(.*)\.(both|tag)?((\..*)?\.(c|cpp|pyx))/mv "\1.\2\3" "\1_\2\3"/p' | sh
```
2023-09-04 19:37:45 +02:00

336 lines
4.2 KiB
C

#if 0
''' '
#endif
#ifdef __cplusplus
template <typename T>
using Box = T*;
#endif
#if 0
' '''
#endif
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
enum A
#ifdef __cplusplus
: uint64_t
#endif // __cplusplus
{
a1 = 0,
a2 = 2,
a3,
a4 = 5,
};
#ifndef __cplusplus
typedef uint64_t A;
#endif // __cplusplus
enum B
#ifdef __cplusplus
: uint32_t
#endif // __cplusplus
{
b1 = 0,
b2 = 2,
b3,
b4 = 5,
};
#ifndef __cplusplus
typedef uint32_t B;
#endif // __cplusplus
enum C
#ifdef __cplusplus
: uint16_t
#endif // __cplusplus
{
c1 = 0,
c2 = 2,
c3,
c4 = 5,
};
#ifndef __cplusplus
typedef uint16_t C;
#endif // __cplusplus
enum D
#ifdef __cplusplus
: uint8_t
#endif // __cplusplus
{
d1 = 0,
d2 = 2,
d3,
d4 = 5,
};
#ifndef __cplusplus
typedef uint8_t D;
#endif // __cplusplus
enum E
#ifdef __cplusplus
: uintptr_t
#endif // __cplusplus
{
e1 = 0,
e2 = 2,
e3,
e4 = 5,
};
#ifndef __cplusplus
typedef uintptr_t E;
#endif // __cplusplus
enum F
#ifdef __cplusplus
: intptr_t
#endif // __cplusplus
{
f1 = 0,
f2 = 2,
f3,
f4 = 5,
};
#ifndef __cplusplus
typedef intptr_t F;
#endif // __cplusplus
typedef enum L {
l1,
l2,
l3,
l4,
} L;
enum M
#ifdef __cplusplus
: int8_t
#endif // __cplusplus
{
m1 = -1,
m2 = 0,
m3 = 1,
};
#ifndef __cplusplus
typedef int8_t M;
#endif // __cplusplus
typedef enum N {
n1,
n2,
n3,
n4,
} N;
enum O
#ifdef __cplusplus
: int8_t
#endif // __cplusplus
{
o1,
o2,
o3,
o4,
};
#ifndef __cplusplus
typedef int8_t O;
#endif // __cplusplus
typedef struct J J;
typedef struct K K;
typedef struct Opaque Opaque;
enum G_Tag
#ifdef __cplusplus
: uint8_t
#endif // __cplusplus
{
Foo,
Bar,
Baz,
};
#ifndef __cplusplus
typedef uint8_t G_Tag;
#endif // __cplusplus
typedef struct Bar_Body {
G_Tag tag;
uint8_t x;
int16_t y;
} Bar_Body;
typedef union G {
G_Tag tag;
struct {
G_Tag foo_tag;
int16_t foo;
};
Bar_Body bar;
} G;
typedef enum H_Tag {
H_Foo,
H_Bar,
H_Baz,
} H_Tag;
typedef struct H_Bar_Body {
uint8_t x;
int16_t y;
} H_Bar_Body;
typedef struct H {
H_Tag tag;
union {
struct {
int16_t foo;
};
H_Bar_Body bar;
};
} H;
enum ExI_Tag
#ifdef __cplusplus
: uint8_t
#endif // __cplusplus
{
ExI_Foo,
ExI_Bar,
ExI_Baz,
};
#ifndef __cplusplus
typedef uint8_t ExI_Tag;
#endif // __cplusplus
typedef struct ExI_Bar_Body {
uint8_t x;
int16_t y;
} ExI_Bar_Body;
typedef struct ExI {
ExI_Tag tag;
union {
struct {
int16_t foo;
};
ExI_Bar_Body bar;
};
} ExI;
enum P_Tag
#ifdef __cplusplus
: uint8_t
#endif // __cplusplus
{
P0,
P1,
};
#ifndef __cplusplus
typedef uint8_t P_Tag;
#endif // __cplusplus
typedef struct P1_Body {
uint8_t _0;
uint8_t _1;
uint8_t _2;
} P1_Body;
typedef struct P {
P_Tag tag;
union {
struct {
uint8_t p0;
};
P1_Body p1;
};
} P;
typedef enum Q_Tag {
Ok,
Err,
} Q_Tag;
typedef struct Q {
Q_Tag tag;
union {
struct {
uint32_t *ok;
};
struct {
uint32_t err;
};
};
} Q;
typedef enum R_Tag {
IRFoo,
IRBar,
IRBaz,
} R_Tag;
typedef struct IRBar_Body {
uint8_t x;
int16_t y;
} IRBar_Body;
typedef struct R {
R_Tag tag;
union {
struct {
int16_t IRFoo;
};
IRBar_Body IRBar;
};
} R;
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
void root(struct Opaque *opaque,
A a,
B b,
C c,
D d,
E e,
F f,
union G g,
struct H h,
struct ExI i,
struct J j,
struct K k,
enum L l,
M m,
enum N n,
O o,
struct P p,
struct Q q,
struct R r);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#if 0
''' '
#endif
#include <stddef.h>
#include "testing-helpers.h"
static_assert(offsetof(CBINDGEN_STRUCT(P), tag) == 0, "unexpected offset for tag");
static_assert(offsetof(CBINDGEN_STRUCT(P), p0) == 1, "unexpected offset for p0");
static_assert(offsetof(CBINDGEN_STRUCT(P), p0) == 1, "unexpected offset for p1");
static_assert(sizeof(CBINDGEN_STRUCT(P)) == 4, "unexpected size for P");
#if 0
' '''
#endif