cpython/Modules/_ctypes/_ctypes_test_generated.c.h

1886 lines
69 KiB
C

/* Generated by Lib/test/test_ctypes/test_generated_structs.py */
// Append VALUE to the result.
#define APPEND(ITEM) { \
PyObject *item = ITEM; \
if (!item) { \
Py_DECREF(result); \
return NULL; \
} \
int rv = PyList_Append(result, item); \
Py_DECREF(item); \
if (rv < 0) { \
Py_DECREF(result); \
return NULL; \
} \
}
// Set TARGET, and append a snapshot of `value`'s
// memory to the result.
#define SET_AND_APPEND(TYPE, TARGET, VAL) { \
TYPE v = VAL; \
TARGET = v; \
APPEND(PyBytes_FromStringAndSize( \
(char*)&value, sizeof(value))); \
}
// Set a field to -1, 1 and 0; append a snapshot of the memory
// after each of the operations.
#define TEST_FIELD(TYPE, TARGET) { \
SET_AND_APPEND(TYPE, TARGET, -1) \
SET_AND_APPEND(TYPE, TARGET, 1) \
SET_AND_APPEND(TYPE, TARGET, 0) \
}
#if defined(__GNUC__) || defined(__clang__)
#define GCC_ATTR(X) __attribute__((X))
#else
#define GCC_ATTR(X) /* */
#endif
static PyObject *
get_generated_test_data(PyObject *self, PyObject *name)
{
if (!PyUnicode_Check(name)) {
PyErr_SetString(PyExc_TypeError, "need a string");
return NULL;
}
PyObject *result = PyList_New(0);
if (!result) {
return NULL;
}
if (PyUnicode_CompareWithASCIIString(name, "SingleInt") == 0) {
struct SingleInt {
int a;
};
struct SingleInt value = {0};
APPEND(PyUnicode_FromString("SingleInt"));
APPEND(PyLong_FromLong(sizeof(struct SingleInt)));
APPEND(PyLong_FromLong(_Alignof(struct SingleInt)));
TEST_FIELD(int, value.a);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "SingleInt_Union") == 0) {
union SingleInt_Union {
int a;
};
union SingleInt_Union value = {0};
APPEND(PyUnicode_FromString("SingleInt_Union"));
APPEND(PyLong_FromLong(sizeof(union SingleInt_Union)));
APPEND(PyLong_FromLong(_Alignof(union SingleInt_Union)));
TEST_FIELD(int, value.a);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "SingleU32") == 0) {
struct SingleU32 {
uint32_t a;
};
struct SingleU32 value = {0};
APPEND(PyUnicode_FromString("SingleU32"));
APPEND(PyLong_FromLong(sizeof(struct SingleU32)));
APPEND(PyLong_FromLong(_Alignof(struct SingleU32)));
TEST_FIELD(uint32_t, value.a);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "SimpleStruct") == 0) {
struct SimpleStruct {
int32_t x;
int8_t y;
uint16_t z;
};
struct SimpleStruct value = {0};
APPEND(PyUnicode_FromString("SimpleStruct"));
APPEND(PyLong_FromLong(sizeof(struct SimpleStruct)));
APPEND(PyLong_FromLong(_Alignof(struct SimpleStruct)));
TEST_FIELD(int32_t, value.x);
TEST_FIELD(int8_t, value.y);
TEST_FIELD(uint16_t, value.z);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "SimpleUnion") == 0) {
union SimpleUnion {
int32_t x;
int8_t y;
uint16_t z;
};
union SimpleUnion value = {0};
APPEND(PyUnicode_FromString("SimpleUnion"));
APPEND(PyLong_FromLong(sizeof(union SimpleUnion)));
APPEND(PyLong_FromLong(_Alignof(union SimpleUnion)));
TEST_FIELD(int32_t, value.x);
TEST_FIELD(int8_t, value.y);
TEST_FIELD(uint16_t, value.z);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "ManyTypes") == 0) {
struct ManyTypes {
int8_t i8;
uint8_t u8;
int16_t i16;
uint16_t u16;
int32_t i32;
uint32_t u32;
int64_t i64;
uint64_t u64;
};
struct ManyTypes value = {0};
APPEND(PyUnicode_FromString("ManyTypes"));
APPEND(PyLong_FromLong(sizeof(struct ManyTypes)));
APPEND(PyLong_FromLong(_Alignof(struct ManyTypes)));
TEST_FIELD(int8_t, value.i8);
TEST_FIELD(uint8_t, value.u8);
TEST_FIELD(int16_t, value.i16);
TEST_FIELD(uint16_t, value.u16);
TEST_FIELD(int32_t, value.i32);
TEST_FIELD(uint32_t, value.u32);
TEST_FIELD(int64_t, value.i64);
TEST_FIELD(uint64_t, value.u64);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "ManyTypesU") == 0) {
union ManyTypesU {
int8_t i8;
uint8_t u8;
int16_t i16;
uint16_t u16;
int32_t i32;
uint32_t u32;
int64_t i64;
uint64_t u64;
};
union ManyTypesU value = {0};
APPEND(PyUnicode_FromString("ManyTypesU"));
APPEND(PyLong_FromLong(sizeof(union ManyTypesU)));
APPEND(PyLong_FromLong(_Alignof(union ManyTypesU)));
TEST_FIELD(int8_t, value.i8);
TEST_FIELD(uint8_t, value.u8);
TEST_FIELD(int16_t, value.i16);
TEST_FIELD(uint16_t, value.u16);
TEST_FIELD(int32_t, value.i32);
TEST_FIELD(uint32_t, value.u32);
TEST_FIELD(int64_t, value.i64);
TEST_FIELD(uint64_t, value.u64);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Nested") == 0) {
struct Nested {
struct {
int32_t x;
int8_t y;
uint16_t z;
} a;
union {
int32_t x;
int8_t y;
uint16_t z;
} b;
struct {
int32_t x;
int8_t y;
uint16_t z;
};
};
struct Nested value = {0};
APPEND(PyUnicode_FromString("Nested"));
APPEND(PyLong_FromLong(sizeof(struct Nested)));
APPEND(PyLong_FromLong(_Alignof(struct Nested)));
TEST_FIELD(int32_t, value.a.x);
TEST_FIELD(int8_t, value.a.y);
TEST_FIELD(uint16_t, value.a.z);
TEST_FIELD(int32_t, value.b.x);
TEST_FIELD(int8_t, value.b.y);
TEST_FIELD(uint16_t, value.b.z);
TEST_FIELD(int32_t, value.x);
TEST_FIELD(int8_t, value.y);
TEST_FIELD(uint16_t, value.z);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Packed1") == 0) {
#if (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 1)
struct GCC_ATTR(ms_struct) Packed1 {
int8_t a;
int64_t b;
};
#pragma pack(pop)
struct Packed1 value = {0};
APPEND(PyUnicode_FromString("Packed1"));
APPEND(PyLong_FromLong(sizeof(struct Packed1)));
APPEND(PyLong_FromLong(_Alignof(struct Packed1)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int64_t, value.b);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Packed2") == 0) {
#if (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 2)
struct GCC_ATTR(ms_struct) Packed2 {
int8_t a;
int64_t b;
};
#pragma pack(pop)
struct Packed2 value = {0};
APPEND(PyUnicode_FromString("Packed2"));
APPEND(PyLong_FromLong(sizeof(struct Packed2)));
APPEND(PyLong_FromLong(_Alignof(struct Packed2)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int64_t, value.b);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Packed3") == 0) {
#if (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 4)
struct GCC_ATTR(ms_struct) Packed3 {
int8_t a;
int64_t b;
};
#pragma pack(pop)
struct Packed3 value = {0};
APPEND(PyUnicode_FromString("Packed3"));
APPEND(PyLong_FromLong(sizeof(struct Packed3)));
APPEND(PyLong_FromLong(_Alignof(struct Packed3)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int64_t, value.b);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Packed4") == 0) {
#if (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 8)
struct GCC_ATTR(ms_struct) Packed4 {
int8_t a;
int64_t b;
};
#pragma pack(pop)
struct Packed4 value = {0};
APPEND(PyUnicode_FromString("Packed4"));
APPEND(PyLong_FromLong(sizeof(struct Packed4)));
APPEND(PyLong_FromLong(_Alignof(struct Packed4)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int64_t, value.b);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "X86_32EdgeCase") == 0) {
struct X86_32EdgeCase {
int32_t a;
int64_t b;
int32_t c;
};
struct X86_32EdgeCase value = {0};
APPEND(PyUnicode_FromString("X86_32EdgeCase"));
APPEND(PyLong_FromLong(sizeof(struct X86_32EdgeCase)));
APPEND(PyLong_FromLong(_Alignof(struct X86_32EdgeCase)));
TEST_FIELD(int32_t, value.a);
TEST_FIELD(int64_t, value.b);
TEST_FIELD(int32_t, value.c);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "MSBitFieldExample") == 0) {
struct MSBitFieldExample {
unsigned int a :4;
unsigned int b :5;
unsigned int c :7;
};
struct MSBitFieldExample value = {0};
APPEND(PyUnicode_FromString("MSBitFieldExample"));
APPEND(PyLong_FromLong(sizeof(struct MSBitFieldExample)));
APPEND(PyLong_FromLong(_Alignof(struct MSBitFieldExample)));
TEST_FIELD(unsigned int, value.a);
TEST_FIELD(unsigned int, value.b);
TEST_FIELD(unsigned int, value.c);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "MSStraddlingExample") == 0) {
struct MSStraddlingExample {
unsigned int first :9;
unsigned int second :7;
unsigned int may_straddle :30;
unsigned int last :18;
};
struct MSStraddlingExample value = {0};
APPEND(PyUnicode_FromString("MSStraddlingExample"));
APPEND(PyLong_FromLong(sizeof(struct MSStraddlingExample)));
APPEND(PyLong_FromLong(_Alignof(struct MSStraddlingExample)));
TEST_FIELD(unsigned int, value.first);
TEST_FIELD(unsigned int, value.second);
TEST_FIELD(unsigned int, value.may_straddle);
TEST_FIELD(unsigned int, value.last);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "IntBits") == 0) {
struct IntBits {
int A :1;
int B :2;
int C :3;
int D :4;
int E :5;
int F :6;
int G :7;
int H :8;
int I :9;
};
struct IntBits value = {0};
APPEND(PyUnicode_FromString("IntBits"));
APPEND(PyLong_FromLong(sizeof(struct IntBits)));
APPEND(PyLong_FromLong(_Alignof(struct IntBits)));
TEST_FIELD(int, value.A);
TEST_FIELD(int, value.B);
TEST_FIELD(int, value.C);
TEST_FIELD(int, value.D);
TEST_FIELD(int, value.E);
TEST_FIELD(int, value.F);
TEST_FIELD(int, value.G);
TEST_FIELD(int, value.H);
TEST_FIELD(int, value.I);
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Bits") == 0) {
#if (!defined(__xlc__))
struct Bits {
int A :1;
int B :2;
int C :3;
int D :4;
int E :5;
int F :6;
int G :7;
int H :8;
int I :9;
short M :1;
short N :2;
short O :3;
short P :4;
short Q :5;
short R :6;
short S :7;
};
struct Bits value = {0};
APPEND(PyUnicode_FromString("Bits"));
APPEND(PyLong_FromLong(sizeof(struct Bits)));
APPEND(PyLong_FromLong(_Alignof(struct Bits)));
TEST_FIELD(int, value.A);
TEST_FIELD(int, value.B);
TEST_FIELD(int, value.C);
TEST_FIELD(int, value.D);
TEST_FIELD(int, value.E);
TEST_FIELD(int, value.F);
TEST_FIELD(int, value.G);
TEST_FIELD(int, value.H);
TEST_FIELD(int, value.I);
TEST_FIELD(short, value.M);
TEST_FIELD(short, value.N);
TEST_FIELD(short, value.O);
TEST_FIELD(short, value.P);
TEST_FIELD(short, value.Q);
TEST_FIELD(short, value.R);
TEST_FIELD(short, value.S);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "IntBits_MSVC") == 0) {
#if (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
struct GCC_ATTR(ms_struct) IntBits_MSVC {
int A :1;
int B :2;
int C :3;
int D :4;
int E :5;
int F :6;
int G :7;
int H :8;
int I :9;
};
struct IntBits_MSVC value = {0};
APPEND(PyUnicode_FromString("IntBits_MSVC"));
APPEND(PyLong_FromLong(sizeof(struct IntBits_MSVC)));
APPEND(PyLong_FromLong(_Alignof(struct IntBits_MSVC)));
TEST_FIELD(int, value.A);
TEST_FIELD(int, value.B);
TEST_FIELD(int, value.C);
TEST_FIELD(int, value.D);
TEST_FIELD(int, value.E);
TEST_FIELD(int, value.F);
TEST_FIELD(int, value.G);
TEST_FIELD(int, value.H);
TEST_FIELD(int, value.I);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Bits_MSVC") == 0) {
#if (!defined(__xlc__)) && (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
struct GCC_ATTR(ms_struct) Bits_MSVC {
int A :1;
int B :2;
int C :3;
int D :4;
int E :5;
int F :6;
int G :7;
int H :8;
int I :9;
short M :1;
short N :2;
short O :3;
short P :4;
short Q :5;
short R :6;
short S :7;
};
struct Bits_MSVC value = {0};
APPEND(PyUnicode_FromString("Bits_MSVC"));
APPEND(PyLong_FromLong(sizeof(struct Bits_MSVC)));
APPEND(PyLong_FromLong(_Alignof(struct Bits_MSVC)));
TEST_FIELD(int, value.A);
TEST_FIELD(int, value.B);
TEST_FIELD(int, value.C);
TEST_FIELD(int, value.D);
TEST_FIELD(int, value.E);
TEST_FIELD(int, value.F);
TEST_FIELD(int, value.G);
TEST_FIELD(int, value.H);
TEST_FIELD(int, value.I);
TEST_FIELD(short, value.M);
TEST_FIELD(short, value.N);
TEST_FIELD(short, value.O);
TEST_FIELD(short, value.P);
TEST_FIELD(short, value.Q);
TEST_FIELD(short, value.R);
TEST_FIELD(short, value.S);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "I64Bits") == 0) {
#if (!defined(__xlc__))
struct I64Bits {
int64_t a :1;
int64_t b :62;
int64_t c :1;
};
struct I64Bits value = {0};
APPEND(PyUnicode_FromString("I64Bits"));
APPEND(PyLong_FromLong(sizeof(struct I64Bits)));
APPEND(PyLong_FromLong(_Alignof(struct I64Bits)));
TEST_FIELD(int64_t, value.a);
TEST_FIELD(int64_t, value.b);
TEST_FIELD(int64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "U64Bits") == 0) {
#if (!defined(__xlc__))
struct U64Bits {
uint64_t a :1;
uint64_t b :62;
uint64_t c :1;
};
struct U64Bits value = {0};
APPEND(PyUnicode_FromString("U64Bits"));
APPEND(PyLong_FromLong(sizeof(struct U64Bits)));
APPEND(PyLong_FromLong(_Alignof(struct U64Bits)));
TEST_FIELD(uint64_t, value.a);
TEST_FIELD(uint64_t, value.b);
TEST_FIELD(uint64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_8") == 0) {
#if (!defined(__xlc__))
struct Struct331_8 {
int8_t a :3;
int8_t b :3;
int8_t c :1;
};
struct Struct331_8 value = {0};
APPEND(PyUnicode_FromString("Struct331_8"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_8)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int8_t, value.b);
TEST_FIELD(int8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_8") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_8 {
int8_t a :1;
int8_t b :6;
int8_t c :1;
};
struct Struct1x1_8 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_8"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_8)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int8_t, value.b);
TEST_FIELD(int8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_8") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_8 {
int8_t a :1;
int8_t full;
int8_t b :6;
int8_t c :1;
};
struct Struct1nx1_8 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_8"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_8)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int8_t, value.full);
TEST_FIELD(int8_t, value.b);
TEST_FIELD(int8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_8") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_8 {
int8_t a :3;
int8_t b :6;
int8_t c :6;
};
struct Struct3xx_8 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_8"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_8)));
TEST_FIELD(int8_t, value.a);
TEST_FIELD(int8_t, value.b);
TEST_FIELD(int8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_u8") == 0) {
#if (!defined(__xlc__))
struct Struct331_u8 {
uint8_t a :3;
uint8_t b :3;
uint8_t c :1;
};
struct Struct331_u8 value = {0};
APPEND(PyUnicode_FromString("Struct331_u8"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_u8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_u8)));
TEST_FIELD(uint8_t, value.a);
TEST_FIELD(uint8_t, value.b);
TEST_FIELD(uint8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_u8") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_u8 {
uint8_t a :1;
uint8_t b :6;
uint8_t c :1;
};
struct Struct1x1_u8 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_u8"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_u8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_u8)));
TEST_FIELD(uint8_t, value.a);
TEST_FIELD(uint8_t, value.b);
TEST_FIELD(uint8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_u8") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_u8 {
uint8_t a :1;
uint8_t full;
uint8_t b :6;
uint8_t c :1;
};
struct Struct1nx1_u8 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_u8"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_u8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_u8)));
TEST_FIELD(uint8_t, value.a);
TEST_FIELD(uint8_t, value.full);
TEST_FIELD(uint8_t, value.b);
TEST_FIELD(uint8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_u8") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_u8 {
uint8_t a :3;
uint8_t b :6;
uint8_t c :6;
};
struct Struct3xx_u8 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_u8"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_u8)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_u8)));
TEST_FIELD(uint8_t, value.a);
TEST_FIELD(uint8_t, value.b);
TEST_FIELD(uint8_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_16") == 0) {
#if (!defined(__xlc__))
struct Struct331_16 {
int16_t a :3;
int16_t b :3;
int16_t c :1;
};
struct Struct331_16 value = {0};
APPEND(PyUnicode_FromString("Struct331_16"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_16)));
TEST_FIELD(int16_t, value.a);
TEST_FIELD(int16_t, value.b);
TEST_FIELD(int16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_16") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_16 {
int16_t a :1;
int16_t b :14;
int16_t c :1;
};
struct Struct1x1_16 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_16"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_16)));
TEST_FIELD(int16_t, value.a);
TEST_FIELD(int16_t, value.b);
TEST_FIELD(int16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_16") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_16 {
int16_t a :1;
int16_t full;
int16_t b :14;
int16_t c :1;
};
struct Struct1nx1_16 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_16"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_16)));
TEST_FIELD(int16_t, value.a);
TEST_FIELD(int16_t, value.full);
TEST_FIELD(int16_t, value.b);
TEST_FIELD(int16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_16") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_16 {
int16_t a :3;
int16_t b :14;
int16_t c :14;
};
struct Struct3xx_16 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_16"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_16)));
TEST_FIELD(int16_t, value.a);
TEST_FIELD(int16_t, value.b);
TEST_FIELD(int16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_u16") == 0) {
#if (!defined(__xlc__))
struct Struct331_u16 {
uint16_t a :3;
uint16_t b :3;
uint16_t c :1;
};
struct Struct331_u16 value = {0};
APPEND(PyUnicode_FromString("Struct331_u16"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_u16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_u16)));
TEST_FIELD(uint16_t, value.a);
TEST_FIELD(uint16_t, value.b);
TEST_FIELD(uint16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_u16") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_u16 {
uint16_t a :1;
uint16_t b :14;
uint16_t c :1;
};
struct Struct1x1_u16 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_u16"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_u16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_u16)));
TEST_FIELD(uint16_t, value.a);
TEST_FIELD(uint16_t, value.b);
TEST_FIELD(uint16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_u16") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_u16 {
uint16_t a :1;
uint16_t full;
uint16_t b :14;
uint16_t c :1;
};
struct Struct1nx1_u16 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_u16"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_u16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_u16)));
TEST_FIELD(uint16_t, value.a);
TEST_FIELD(uint16_t, value.full);
TEST_FIELD(uint16_t, value.b);
TEST_FIELD(uint16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_u16") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_u16 {
uint16_t a :3;
uint16_t b :14;
uint16_t c :14;
};
struct Struct3xx_u16 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_u16"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_u16)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_u16)));
TEST_FIELD(uint16_t, value.a);
TEST_FIELD(uint16_t, value.b);
TEST_FIELD(uint16_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_32") == 0) {
#if (!defined(__xlc__))
struct Struct331_32 {
int32_t a :3;
int32_t b :3;
int32_t c :1;
};
struct Struct331_32 value = {0};
APPEND(PyUnicode_FromString("Struct331_32"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_32)));
TEST_FIELD(int32_t, value.a);
TEST_FIELD(int32_t, value.b);
TEST_FIELD(int32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_32") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_32 {
int32_t a :1;
int32_t b :30;
int32_t c :1;
};
struct Struct1x1_32 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_32"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_32)));
TEST_FIELD(int32_t, value.a);
TEST_FIELD(int32_t, value.b);
TEST_FIELD(int32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_32") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_32 {
int32_t a :1;
int32_t full;
int32_t b :30;
int32_t c :1;
};
struct Struct1nx1_32 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_32"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_32)));
TEST_FIELD(int32_t, value.a);
TEST_FIELD(int32_t, value.full);
TEST_FIELD(int32_t, value.b);
TEST_FIELD(int32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_32") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_32 {
int32_t a :3;
int32_t b :30;
int32_t c :30;
};
struct Struct3xx_32 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_32"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_32)));
TEST_FIELD(int32_t, value.a);
TEST_FIELD(int32_t, value.b);
TEST_FIELD(int32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_u32") == 0) {
#if (!defined(__xlc__))
struct Struct331_u32 {
uint32_t a :3;
uint32_t b :3;
uint32_t c :1;
};
struct Struct331_u32 value = {0};
APPEND(PyUnicode_FromString("Struct331_u32"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_u32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_u32)));
TEST_FIELD(uint32_t, value.a);
TEST_FIELD(uint32_t, value.b);
TEST_FIELD(uint32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_u32") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_u32 {
uint32_t a :1;
uint32_t b :30;
uint32_t c :1;
};
struct Struct1x1_u32 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_u32"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_u32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_u32)));
TEST_FIELD(uint32_t, value.a);
TEST_FIELD(uint32_t, value.b);
TEST_FIELD(uint32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_u32") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_u32 {
uint32_t a :1;
uint32_t full;
uint32_t b :30;
uint32_t c :1;
};
struct Struct1nx1_u32 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_u32"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_u32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_u32)));
TEST_FIELD(uint32_t, value.a);
TEST_FIELD(uint32_t, value.full);
TEST_FIELD(uint32_t, value.b);
TEST_FIELD(uint32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_u32") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_u32 {
uint32_t a :3;
uint32_t b :30;
uint32_t c :30;
};
struct Struct3xx_u32 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_u32"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_u32)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_u32)));
TEST_FIELD(uint32_t, value.a);
TEST_FIELD(uint32_t, value.b);
TEST_FIELD(uint32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_64") == 0) {
#if (!defined(__xlc__))
struct Struct331_64 {
int64_t a :3;
int64_t b :3;
int64_t c :1;
};
struct Struct331_64 value = {0};
APPEND(PyUnicode_FromString("Struct331_64"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_64)));
TEST_FIELD(int64_t, value.a);
TEST_FIELD(int64_t, value.b);
TEST_FIELD(int64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_64") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_64 {
int64_t a :1;
int64_t b :62;
int64_t c :1;
};
struct Struct1x1_64 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_64"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_64)));
TEST_FIELD(int64_t, value.a);
TEST_FIELD(int64_t, value.b);
TEST_FIELD(int64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_64") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_64 {
int64_t a :1;
int64_t full;
int64_t b :62;
int64_t c :1;
};
struct Struct1nx1_64 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_64"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_64)));
TEST_FIELD(int64_t, value.a);
TEST_FIELD(int64_t, value.full);
TEST_FIELD(int64_t, value.b);
TEST_FIELD(int64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_64") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_64 {
int64_t a :3;
int64_t b :62;
int64_t c :62;
};
struct Struct3xx_64 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_64"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_64)));
TEST_FIELD(int64_t, value.a);
TEST_FIELD(int64_t, value.b);
TEST_FIELD(int64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct331_u64") == 0) {
#if (!defined(__xlc__))
struct Struct331_u64 {
uint64_t a :3;
uint64_t b :3;
uint64_t c :1;
};
struct Struct331_u64 value = {0};
APPEND(PyUnicode_FromString("Struct331_u64"));
APPEND(PyLong_FromLong(sizeof(struct Struct331_u64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct331_u64)));
TEST_FIELD(uint64_t, value.a);
TEST_FIELD(uint64_t, value.b);
TEST_FIELD(uint64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1x1_u64") == 0) {
#if (!defined(__xlc__))
struct Struct1x1_u64 {
uint64_t a :1;
uint64_t b :62;
uint64_t c :1;
};
struct Struct1x1_u64 value = {0};
APPEND(PyUnicode_FromString("Struct1x1_u64"));
APPEND(PyLong_FromLong(sizeof(struct Struct1x1_u64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1x1_u64)));
TEST_FIELD(uint64_t, value.a);
TEST_FIELD(uint64_t, value.b);
TEST_FIELD(uint64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct1nx1_u64") == 0) {
#if (!defined(__xlc__))
struct Struct1nx1_u64 {
uint64_t a :1;
uint64_t full;
uint64_t b :62;
uint64_t c :1;
};
struct Struct1nx1_u64 value = {0};
APPEND(PyUnicode_FromString("Struct1nx1_u64"));
APPEND(PyLong_FromLong(sizeof(struct Struct1nx1_u64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct1nx1_u64)));
TEST_FIELD(uint64_t, value.a);
TEST_FIELD(uint64_t, value.full);
TEST_FIELD(uint64_t, value.b);
TEST_FIELD(uint64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Struct3xx_u64") == 0) {
#if (!defined(__xlc__))
struct Struct3xx_u64 {
uint64_t a :3;
uint64_t b :62;
uint64_t c :62;
};
struct Struct3xx_u64 value = {0};
APPEND(PyUnicode_FromString("Struct3xx_u64"));
APPEND(PyLong_FromLong(sizeof(struct Struct3xx_u64)));
APPEND(PyLong_FromLong(_Alignof(struct Struct3xx_u64)));
TEST_FIELD(uint64_t, value.a);
TEST_FIELD(uint64_t, value.b);
TEST_FIELD(uint64_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed1") == 0) {
#if (!defined(__xlc__))
struct Mixed1 {
signed char a :4;
int b :4;
};
struct Mixed1 value = {0};
APPEND(PyUnicode_FromString("Mixed1"));
APPEND(PyLong_FromLong(sizeof(struct Mixed1)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed1)));
TEST_FIELD(signed char, value.a);
TEST_FIELD(int, value.b);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed2") == 0) {
#if (!defined(__xlc__))
struct Mixed2 {
signed char a :4;
int32_t b :32;
};
struct Mixed2 value = {0};
APPEND(PyUnicode_FromString("Mixed2"));
APPEND(PyLong_FromLong(sizeof(struct Mixed2)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed2)));
TEST_FIELD(signed char, value.a);
TEST_FIELD(int32_t, value.b);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed3") == 0) {
#if (!defined(__xlc__))
struct Mixed3 {
signed char a :4;
unsigned char b :4;
};
struct Mixed3 value = {0};
APPEND(PyUnicode_FromString("Mixed3"));
APPEND(PyLong_FromLong(sizeof(struct Mixed3)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed3)));
TEST_FIELD(signed char, value.a);
TEST_FIELD(unsigned char, value.b);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed4") == 0) {
#if (!defined(__xlc__))
struct Mixed4 {
short a :4;
short b :4;
int c :24;
short d :4;
short e :4;
int f :24;
};
struct Mixed4 value = {0};
APPEND(PyUnicode_FromString("Mixed4"));
APPEND(PyLong_FromLong(sizeof(struct Mixed4)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed4)));
TEST_FIELD(short, value.a);
TEST_FIELD(short, value.b);
TEST_FIELD(int, value.c);
TEST_FIELD(short, value.d);
TEST_FIELD(short, value.e);
TEST_FIELD(int, value.f);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed5") == 0) {
#if (!defined(__xlc__))
struct Mixed5 {
unsigned int A :1;
unsigned short B :16;
};
struct Mixed5 value = {0};
APPEND(PyUnicode_FromString("Mixed5"));
APPEND(PyLong_FromLong(sizeof(struct Mixed5)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed5)));
TEST_FIELD(unsigned int, value.A);
TEST_FIELD(unsigned short, value.B);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed6") == 0) {
#if (!defined(__xlc__))
struct Mixed6 {
unsigned long long A :1;
unsigned int B :32;
};
struct Mixed6 value = {0};
APPEND(PyUnicode_FromString("Mixed6"));
APPEND(PyLong_FromLong(sizeof(struct Mixed6)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed6)));
TEST_FIELD(unsigned long long, value.A);
TEST_FIELD(unsigned int, value.B);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed7") == 0) {
#if (!defined(__xlc__))
struct Mixed7 {
uint32_t A;
uint32_t B :20;
uint64_t C :24;
};
struct Mixed7 value = {0};
APPEND(PyUnicode_FromString("Mixed7"));
APPEND(PyLong_FromLong(sizeof(struct Mixed7)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed7)));
TEST_FIELD(uint32_t, value.A);
TEST_FIELD(uint32_t, value.B);
TEST_FIELD(uint64_t, value.C);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed8_a") == 0) {
#if (!defined(__xlc__))
struct Mixed8_a {
uint32_t A;
uint32_t B :32;
unsigned long long C :1;
};
struct Mixed8_a value = {0};
APPEND(PyUnicode_FromString("Mixed8_a"));
APPEND(PyLong_FromLong(sizeof(struct Mixed8_a)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed8_a)));
TEST_FIELD(uint32_t, value.A);
TEST_FIELD(uint32_t, value.B);
TEST_FIELD(unsigned long long, value.C);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed8_b") == 0) {
#if (!defined(__xlc__))
struct Mixed8_b {
uint32_t A;
uint32_t B;
unsigned long long C :1;
};
struct Mixed8_b value = {0};
APPEND(PyUnicode_FromString("Mixed8_b"));
APPEND(PyLong_FromLong(sizeof(struct Mixed8_b)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed8_b)));
TEST_FIELD(uint32_t, value.A);
TEST_FIELD(uint32_t, value.B);
TEST_FIELD(unsigned long long, value.C);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed9") == 0) {
#if (!defined(__xlc__))
struct Mixed9 {
uint8_t A;
uint32_t B :1;
};
struct Mixed9 value = {0};
APPEND(PyUnicode_FromString("Mixed9"));
APPEND(PyLong_FromLong(sizeof(struct Mixed9)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed9)));
TEST_FIELD(uint8_t, value.A);
TEST_FIELD(uint32_t, value.B);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Mixed10") == 0) {
#if (!defined(__xlc__))
struct Mixed10 {
uint32_t A :1;
uint64_t B :1;
};
struct Mixed10 value = {0};
APPEND(PyUnicode_FromString("Mixed10"));
APPEND(PyLong_FromLong(sizeof(struct Mixed10)));
APPEND(PyLong_FromLong(_Alignof(struct Mixed10)));
TEST_FIELD(uint32_t, value.A);
TEST_FIELD(uint64_t, value.B);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Example_gh_95496") == 0) {
#if (!defined(__xlc__))
struct Example_gh_95496 {
uint32_t A :1;
uint64_t B :1;
};
struct Example_gh_95496 value = {0};
APPEND(PyUnicode_FromString("Example_gh_95496"));
APPEND(PyLong_FromLong(sizeof(struct Example_gh_95496)));
APPEND(PyLong_FromLong(_Alignof(struct Example_gh_95496)));
TEST_FIELD(uint32_t, value.A);
TEST_FIELD(uint64_t, value.B);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Example_gh_84039_bad") == 0) {
#if (!defined(__xlc__)) && (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 1)
struct GCC_ATTR(ms_struct) Example_gh_84039_bad {
uint8_t a0 :1;
uint8_t a1 :1;
uint8_t a2 :1;
uint8_t a3 :1;
uint8_t a4 :1;
uint8_t a5 :1;
uint8_t a6 :1;
uint8_t a7 :1;
uint16_t b0 :4;
uint16_t b1 :12;
};
#pragma pack(pop)
struct Example_gh_84039_bad value = {0};
APPEND(PyUnicode_FromString("Example_gh_84039_bad"));
APPEND(PyLong_FromLong(sizeof(struct Example_gh_84039_bad)));
APPEND(PyLong_FromLong(_Alignof(struct Example_gh_84039_bad)));
TEST_FIELD(uint8_t, value.a0);
TEST_FIELD(uint8_t, value.a1);
TEST_FIELD(uint8_t, value.a2);
TEST_FIELD(uint8_t, value.a3);
TEST_FIELD(uint8_t, value.a4);
TEST_FIELD(uint8_t, value.a5);
TEST_FIELD(uint8_t, value.a6);
TEST_FIELD(uint8_t, value.a7);
TEST_FIELD(uint16_t, value.b0);
TEST_FIELD(uint16_t, value.b1);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Example_gh_84039_good_a") == 0) {
#if (!defined(__xlc__)) && (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 1)
struct GCC_ATTR(ms_struct) Example_gh_84039_good_a {
uint8_t a0 :1;
uint8_t a1 :1;
uint8_t a2 :1;
uint8_t a3 :1;
uint8_t a4 :1;
uint8_t a5 :1;
uint8_t a6 :1;
uint8_t a7 :1;
};
#pragma pack(pop)
struct Example_gh_84039_good_a value = {0};
APPEND(PyUnicode_FromString("Example_gh_84039_good_a"));
APPEND(PyLong_FromLong(sizeof(struct Example_gh_84039_good_a)));
APPEND(PyLong_FromLong(_Alignof(struct Example_gh_84039_good_a)));
TEST_FIELD(uint8_t, value.a0);
TEST_FIELD(uint8_t, value.a1);
TEST_FIELD(uint8_t, value.a2);
TEST_FIELD(uint8_t, value.a3);
TEST_FIELD(uint8_t, value.a4);
TEST_FIELD(uint8_t, value.a5);
TEST_FIELD(uint8_t, value.a6);
TEST_FIELD(uint8_t, value.a7);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Example_gh_84039_good") == 0) {
#if (!defined(__xlc__)) && (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 1)
struct GCC_ATTR(ms_struct) Example_gh_84039_good {
#pragma pack(push, 1)
struct GCC_ATTR(ms_struct) {
uint8_t a0 :1;
uint8_t a1 :1;
uint8_t a2 :1;
uint8_t a3 :1;
uint8_t a4 :1;
uint8_t a5 :1;
uint8_t a6 :1;
uint8_t a7 :1;
} a;
#pragma pack(pop)
uint16_t b0 :4;
uint16_t b1 :12;
};
#pragma pack(pop)
struct Example_gh_84039_good value = {0};
APPEND(PyUnicode_FromString("Example_gh_84039_good"));
APPEND(PyLong_FromLong(sizeof(struct Example_gh_84039_good)));
APPEND(PyLong_FromLong(_Alignof(struct Example_gh_84039_good)));
TEST_FIELD(uint8_t, value.a.a0);
TEST_FIELD(uint8_t, value.a.a1);
TEST_FIELD(uint8_t, value.a.a2);
TEST_FIELD(uint8_t, value.a.a3);
TEST_FIELD(uint8_t, value.a.a4);
TEST_FIELD(uint8_t, value.a.a5);
TEST_FIELD(uint8_t, value.a.a6);
TEST_FIELD(uint8_t, value.a.a7);
TEST_FIELD(uint16_t, value.b0);
TEST_FIELD(uint16_t, value.b1);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Example_gh_73939") == 0) {
#if (!defined(__xlc__)) && (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 1)
struct GCC_ATTR(ms_struct) Example_gh_73939 {
uint16_t P;
uint16_t L :9;
uint16_t Pro :1;
uint16_t G :1;
uint16_t IB :1;
uint16_t IR :1;
uint16_t R :3;
uint32_t T :10;
uint32_t C :20;
uint32_t R2 :2;
};
#pragma pack(pop)
struct Example_gh_73939 value = {0};
APPEND(PyUnicode_FromString("Example_gh_73939"));
APPEND(PyLong_FromLong(sizeof(struct Example_gh_73939)));
APPEND(PyLong_FromLong(_Alignof(struct Example_gh_73939)));
TEST_FIELD(uint16_t, value.P);
TEST_FIELD(uint16_t, value.L);
TEST_FIELD(uint16_t, value.Pro);
TEST_FIELD(uint16_t, value.G);
TEST_FIELD(uint16_t, value.IB);
TEST_FIELD(uint16_t, value.IR);
TEST_FIELD(uint16_t, value.R);
TEST_FIELD(uint32_t, value.T);
TEST_FIELD(uint32_t, value.C);
TEST_FIELD(uint32_t, value.R2);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Example_gh_86098") == 0) {
#if (!defined(__xlc__))
struct Example_gh_86098 {
uint8_t a :8;
uint8_t b :8;
uint32_t c :16;
};
struct Example_gh_86098 value = {0};
APPEND(PyUnicode_FromString("Example_gh_86098"));
APPEND(PyLong_FromLong(sizeof(struct Example_gh_86098)));
APPEND(PyLong_FromLong(_Alignof(struct Example_gh_86098)));
TEST_FIELD(uint8_t, value.a);
TEST_FIELD(uint8_t, value.b);
TEST_FIELD(uint32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "Example_gh_86098_pack") == 0) {
#if (!defined(__xlc__)) && (defined(MS_WIN32) || ((defined(__x86_64__) || defined(__i386__) || defined(__ppc64__)) && (defined(__GNUC__) || defined(__clang__))))
#pragma pack(push, 1)
struct GCC_ATTR(ms_struct) Example_gh_86098_pack {
uint8_t a :8;
uint8_t b :8;
uint32_t c :16;
};
#pragma pack(pop)
struct Example_gh_86098_pack value = {0};
APPEND(PyUnicode_FromString("Example_gh_86098_pack"));
APPEND(PyLong_FromLong(sizeof(struct Example_gh_86098_pack)));
APPEND(PyLong_FromLong(_Alignof(struct Example_gh_86098_pack)));
TEST_FIELD(uint8_t, value.a);
TEST_FIELD(uint8_t, value.b);
TEST_FIELD(uint32_t, value.c);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
if (PyUnicode_CompareWithASCIIString(name, "AnonBitfields") == 0) {
#if (!defined(__xlc__))
struct AnonBitfields {
struct {
signed char a :4;
unsigned char b :4;
};
signed char y;
};
struct AnonBitfields value = {0};
APPEND(PyUnicode_FromString("AnonBitfields"));
APPEND(PyLong_FromLong(sizeof(struct AnonBitfields)));
APPEND(PyLong_FromLong(_Alignof(struct AnonBitfields)));
TEST_FIELD(signed char, value.a);
TEST_FIELD(unsigned char, value.b);
TEST_FIELD(signed char, value.y);
#else
APPEND(Py_NewRef(Py_None));
APPEND(PyUnicode_FromString("skipped on this compiler"));
#endif
return result;
}
Py_DECREF(result);
PyErr_Format(PyExc_ValueError, "unknown testcase %R", name);
return NULL;
}
#undef GCC_ATTR
#undef TEST_FIELD
#undef SET_AND_APPEND
#undef APPEND