// This file is distributed under the University of Illinois Open Source License.
// See LICENSE.TXT for details.
// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
// RUN: c_compiler -c %s -I "common" -o %t2.o
// RUN: linker -o %t1%exeext  %t1.o %t2.o
// RUN: runtool %t1%exeext | checker "TEST PASSED"
#include "testsuite.h"
struct __attribute__((packed)) aBFs0c_BFs0c { signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c { signed char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFs0c { signed char :0; signed char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFs0i { signed char :0; signed char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFs0ll { signed char :0; signed char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFs0s { signed char :0; signed char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFu0c { signed char :0; signed char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFu0i { signed char :0; signed char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFu0ll { signed char :0; signed char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0c_BFu0s { signed char :0; signed char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i { signed char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFs0c { signed char :0; signed char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFs0i { signed char :0; signed char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFs0ll { signed char :0; signed char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFs0s { signed char :0; signed char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFu0c { signed char :0; signed char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFu0i { signed char :0; signed char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFu0ll { signed char :0; signed char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0i_BFu0s { signed char :0; signed char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll { signed char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFs0c { signed char :0; signed char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFs0i { signed char :0; signed char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFs0ll { signed char :0; signed char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFs0s { signed char :0; signed char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFu0c { signed char :0; signed char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFu0i { signed char :0; signed char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFu0ll { signed char :0; signed char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0ll_BFu0s { signed char :0; signed char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s { signed char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFs0c { signed char :0; signed char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFs0i { signed char :0; signed char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFs0ll { signed char :0; signed char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFs0s { signed char :0; signed char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFu0c { signed char :0; signed char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFu0i { signed char :0; signed char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFu0ll { signed char :0; signed char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFs0s_BFu0s { signed char :0; signed char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c { signed char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFs0c { signed char :0; signed char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFs0i { signed char :0; signed char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFs0ll { signed char :0; signed char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFs0s { signed char :0; signed char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFu0c { signed char :0; signed char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFu0i { signed char :0; signed char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFu0ll { signed char :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0c_BFu0s { signed char :0; signed char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i { signed char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFs0c { signed char :0; signed char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFs0i { signed char :0; signed char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFs0ll { signed char :0; signed char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFs0s { signed char :0; signed char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFu0c { signed char :0; signed char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFu0i { signed char :0; signed char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFu0ll { signed char :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0i_BFu0s { signed char :0; signed char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll { signed char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFs0c { signed char :0; signed char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFs0i { signed char :0; signed char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFs0ll { signed char :0; signed char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFs0s { signed char :0; signed char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFu0c { signed char :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFu0i { signed char :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFu0ll { signed char :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0ll_BFu0s { signed char :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s { signed char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFs0c { signed char :0; signed char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFs0i { signed char :0; signed char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFs0ll { signed char :0; signed char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFs0s { signed char :0; signed char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFu0c { signed char :0; signed char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFu0i { signed char :0; signed char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFu0ll { signed char :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0c_BFu0s_BFu0s { signed char :0; signed char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i { signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c { signed char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFs0c { signed char :0; signed int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFs0i { signed char :0; signed int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFs0ll { signed char :0; signed int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFs0s { signed char :0; signed int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFu0c { signed char :0; signed int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFu0i { signed char :0; signed int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFu0ll { signed char :0; signed int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0c_BFu0s { signed char :0; signed int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i { signed char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFs0c { signed char :0; signed int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFs0i { signed char :0; signed int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFs0ll { signed char :0; signed int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFs0s { signed char :0; signed int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFu0c { signed char :0; signed int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFu0i { signed char :0; signed int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFu0ll { signed char :0; signed int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0i_BFu0s { signed char :0; signed int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll { signed char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFs0c { signed char :0; signed int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFs0i { signed char :0; signed int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFs0ll { signed char :0; signed int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFs0s { signed char :0; signed int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFu0c { signed char :0; signed int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFu0i { signed char :0; signed int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFu0ll { signed char :0; signed int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0ll_BFu0s { signed char :0; signed int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s { signed char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFs0c { signed char :0; signed int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFs0i { signed char :0; signed int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFs0ll { signed char :0; signed int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFs0s { signed char :0; signed int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFu0c { signed char :0; signed int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFu0i { signed char :0; signed int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFu0ll { signed char :0; signed int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFs0s_BFu0s { signed char :0; signed int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c { signed char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFs0c { signed char :0; signed int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFs0i { signed char :0; signed int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFs0ll { signed char :0; signed int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFs0s { signed char :0; signed int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFu0c { signed char :0; signed int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFu0i { signed char :0; signed int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFu0ll { signed char :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0c_BFu0s { signed char :0; signed int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i { signed char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFs0c { signed char :0; signed int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFs0i { signed char :0; signed int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFs0ll { signed char :0; signed int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFs0s { signed char :0; signed int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFu0c { signed char :0; signed int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFu0i { signed char :0; signed int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFu0ll { signed char :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0i_BFu0s { signed char :0; signed int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll { signed char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFs0c { signed char :0; signed int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFs0i { signed char :0; signed int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFs0ll { signed char :0; signed int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFs0s { signed char :0; signed int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFu0c { signed char :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFu0i { signed char :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFu0ll { signed char :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0ll_BFu0s { signed char :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s { signed char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFs0c { signed char :0; signed int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFs0i { signed char :0; signed int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFs0ll { signed char :0; signed int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFs0s { signed char :0; signed int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFu0c { signed char :0; signed int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFu0i { signed char :0; signed int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFu0ll { signed char :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0i_BFu0s_BFu0s { signed char :0; signed int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll { signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c { signed char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFs0c { signed char :0; signed long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFs0i { signed char :0; signed long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFs0ll { signed char :0; signed long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFs0s { signed char :0; signed long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFu0c { signed char :0; signed long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFu0i { signed char :0; signed long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFu0ll { signed char :0; signed long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0c_BFu0s { signed char :0; signed long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i { signed char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFs0c { signed char :0; signed long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFs0i { signed char :0; signed long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFs0ll { signed char :0; signed long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFs0s { signed char :0; signed long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFu0c { signed char :0; signed long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFu0i { signed char :0; signed long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFu0ll { signed char :0; signed long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0i_BFu0s { signed char :0; signed long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll { signed char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFs0c { signed char :0; signed long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFs0i { signed char :0; signed long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFs0ll { signed char :0; signed long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFs0s { signed char :0; signed long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFu0c { signed char :0; signed long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFu0i { signed char :0; signed long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFu0ll { signed char :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0ll_BFu0s { signed char :0; signed long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s { signed char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFs0c { signed char :0; signed long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFs0i { signed char :0; signed long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFs0ll { signed char :0; signed long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFs0s { signed char :0; signed long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFu0c { signed char :0; signed long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFu0i { signed char :0; signed long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFu0ll { signed char :0; signed long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFs0s_BFu0s { signed char :0; signed long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c { signed char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFs0c { signed char :0; signed long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFs0i { signed char :0; signed long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFs0ll { signed char :0; signed long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFs0s { signed char :0; signed long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFu0c { signed char :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFu0i { signed char :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFu0ll { signed char :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0c_BFu0s { signed char :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i { signed char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFs0c { signed char :0; signed long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFs0i { signed char :0; signed long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFs0ll { signed char :0; signed long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFs0s { signed char :0; signed long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFu0c { signed char :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFu0i { signed char :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFu0ll { signed char :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0i_BFu0s { signed char :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll { signed char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFs0c { signed char :0; signed long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFs0i { signed char :0; signed long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFs0ll { signed char :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFs0s { signed char :0; signed long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFu0c { signed char :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFu0i { signed char :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFu0ll { signed char :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0ll_BFu0s { signed char :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s { signed char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFs0c { signed char :0; signed long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFs0i { signed char :0; signed long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFs0ll { signed char :0; signed long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFs0s { signed char :0; signed long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFu0c { signed char :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFu0i { signed char :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFu0ll { signed char :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0ll_BFu0s_BFu0s { signed char :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s { signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c { signed char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFs0c { signed char :0; signed short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFs0i { signed char :0; signed short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFs0ll { signed char :0; signed short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFs0s { signed char :0; signed short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFu0c { signed char :0; signed short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFu0i { signed char :0; signed short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFu0ll { signed char :0; signed short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0c_BFu0s { signed char :0; signed short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i { signed char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFs0c { signed char :0; signed short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFs0i { signed char :0; signed short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFs0ll { signed char :0; signed short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFs0s { signed char :0; signed short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFu0c { signed char :0; signed short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFu0i { signed char :0; signed short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFu0ll { signed char :0; signed short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0i_BFu0s { signed char :0; signed short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll { signed char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFs0c { signed char :0; signed short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFs0i { signed char :0; signed short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFs0ll { signed char :0; signed short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFs0s { signed char :0; signed short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFu0c { signed char :0; signed short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFu0i { signed char :0; signed short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFu0ll { signed char :0; signed short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0ll_BFu0s { signed char :0; signed short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s { signed char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFs0c { signed char :0; signed short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFs0i { signed char :0; signed short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFs0ll { signed char :0; signed short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFs0s { signed char :0; signed short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFu0c { signed char :0; signed short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFu0i { signed char :0; signed short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFu0ll { signed char :0; signed short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFs0s_BFu0s { signed char :0; signed short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c { signed char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFs0c { signed char :0; signed short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFs0i { signed char :0; signed short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFs0ll { signed char :0; signed short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFs0s { signed char :0; signed short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFu0c { signed char :0; signed short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFu0i { signed char :0; signed short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFu0ll { signed char :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0c_BFu0s { signed char :0; signed short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i { signed char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFs0c { signed char :0; signed short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFs0i { signed char :0; signed short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFs0ll { signed char :0; signed short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFs0s { signed char :0; signed short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFu0c { signed char :0; signed short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFu0i { signed char :0; signed short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFu0ll { signed char :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0i_BFu0s { signed char :0; signed short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll { signed char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFs0c { signed char :0; signed short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFs0i { signed char :0; signed short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFs0ll { signed char :0; signed short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFs0s { signed char :0; signed short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFu0c { signed char :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFu0i { signed char :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFu0ll { signed char :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0ll_BFu0s { signed char :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s { signed char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFs0c { signed char :0; signed short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFs0i { signed char :0; signed short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFs0ll { signed char :0; signed short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFs0s { signed char :0; signed short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFu0c { signed char :0; signed short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFu0i { signed char :0; signed short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFu0ll { signed char :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFs0s_BFu0s_BFu0s { signed char :0; signed short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c { signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c { signed char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFs0c { signed char :0; unsigned char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFs0i { signed char :0; unsigned char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFs0ll { signed char :0; unsigned char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFs0s { signed char :0; unsigned char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFu0c { signed char :0; unsigned char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFu0i { signed char :0; unsigned char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFu0ll { signed char :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0c_BFu0s { signed char :0; unsigned char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i { signed char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFs0c { signed char :0; unsigned char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFs0i { signed char :0; unsigned char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFs0ll { signed char :0; unsigned char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFs0s { signed char :0; unsigned char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFu0c { signed char :0; unsigned char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFu0i { signed char :0; unsigned char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFu0ll { signed char :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0i_BFu0s { signed char :0; unsigned char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll { signed char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFs0c { signed char :0; unsigned char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFs0i { signed char :0; unsigned char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFs0ll { signed char :0; unsigned char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFs0s { signed char :0; unsigned char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFu0c { signed char :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFu0i { signed char :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFu0ll { signed char :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0ll_BFu0s { signed char :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s { signed char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFs0c { signed char :0; unsigned char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFs0i { signed char :0; unsigned char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFs0ll { signed char :0; unsigned char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFs0s { signed char :0; unsigned char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFu0c { signed char :0; unsigned char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFu0i { signed char :0; unsigned char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFu0ll { signed char :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFs0s_BFu0s { signed char :0; unsigned char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c { signed char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFs0c { signed char :0; unsigned char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFs0i { signed char :0; unsigned char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFs0ll { signed char :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFs0s { signed char :0; unsigned char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFu0c { signed char :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFu0i { signed char :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFu0ll { signed char :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0c_BFu0s { signed char :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i { signed char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFs0c { signed char :0; unsigned char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFs0i { signed char :0; unsigned char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFs0ll { signed char :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFs0s { signed char :0; unsigned char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFu0c { signed char :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFu0i { signed char :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFu0ll { signed char :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0i_BFu0s { signed char :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll { signed char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFs0c { signed char :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFs0i { signed char :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFs0ll { signed char :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFs0s { signed char :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFu0c { signed char :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFu0i { signed char :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFu0ll { signed char :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0ll_BFu0s { signed char :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s { signed char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFs0c { signed char :0; unsigned char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFs0i { signed char :0; unsigned char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFs0ll { signed char :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFs0s { signed char :0; unsigned char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFu0c { signed char :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFu0i { signed char :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFu0ll { signed char :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0c_BFu0s_BFu0s { signed char :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i { signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c { signed char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFs0c { signed char :0; unsigned int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFs0i { signed char :0; unsigned int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFs0ll { signed char :0; unsigned int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFs0s { signed char :0; unsigned int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFu0c { signed char :0; unsigned int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFu0i { signed char :0; unsigned int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFu0ll { signed char :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0c_BFu0s { signed char :0; unsigned int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i { signed char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFs0c { signed char :0; unsigned int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFs0i { signed char :0; unsigned int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFs0ll { signed char :0; unsigned int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFs0s { signed char :0; unsigned int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFu0c { signed char :0; unsigned int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFu0i { signed char :0; unsigned int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFu0ll { signed char :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0i_BFu0s { signed char :0; unsigned int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll { signed char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFs0c { signed char :0; unsigned int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFs0i { signed char :0; unsigned int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFs0ll { signed char :0; unsigned int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFs0s { signed char :0; unsigned int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFu0c { signed char :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFu0i { signed char :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFu0ll { signed char :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0ll_BFu0s { signed char :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s { signed char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFs0c { signed char :0; unsigned int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFs0i { signed char :0; unsigned int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFs0ll { signed char :0; unsigned int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFs0s { signed char :0; unsigned int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFu0c { signed char :0; unsigned int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFu0i { signed char :0; unsigned int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFu0ll { signed char :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFs0s_BFu0s { signed char :0; unsigned int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c { signed char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFs0c { signed char :0; unsigned int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFs0i { signed char :0; unsigned int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFs0ll { signed char :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFs0s { signed char :0; unsigned int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFu0c { signed char :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFu0i { signed char :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFu0ll { signed char :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0c_BFu0s { signed char :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i { signed char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFs0c { signed char :0; unsigned int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFs0i { signed char :0; unsigned int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFs0ll { signed char :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFs0s { signed char :0; unsigned int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFu0c { signed char :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFu0i { signed char :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFu0ll { signed char :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0i_BFu0s { signed char :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll { signed char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFs0c { signed char :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFs0i { signed char :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFs0ll { signed char :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFs0s { signed char :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFu0c { signed char :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFu0i { signed char :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFu0ll { signed char :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0ll_BFu0s { signed char :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s { signed char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFs0c { signed char :0; unsigned int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFs0i { signed char :0; unsigned int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFs0ll { signed char :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFs0s { signed char :0; unsigned int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFu0c { signed char :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFu0i { signed char :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFu0ll { signed char :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0i_BFu0s_BFu0s { signed char :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll { signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c { signed char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFs0c { signed char :0; unsigned long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFs0i { signed char :0; unsigned long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFs0ll { signed char :0; unsigned long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFs0s { signed char :0; unsigned long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFu0c { signed char :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFu0i { signed char :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFu0ll { signed char :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0c_BFu0s { signed char :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i { signed char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFs0c { signed char :0; unsigned long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFs0i { signed char :0; unsigned long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFs0ll { signed char :0; unsigned long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFs0s { signed char :0; unsigned long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFu0c { signed char :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFu0i { signed char :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFu0ll { signed char :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0i_BFu0s { signed char :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll { signed char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFs0c { signed char :0; unsigned long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFs0i { signed char :0; unsigned long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFs0ll { signed char :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFs0s { signed char :0; unsigned long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFu0c { signed char :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFu0i { signed char :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFu0ll { signed char :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0ll_BFu0s { signed char :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s { signed char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFs0c { signed char :0; unsigned long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFs0i { signed char :0; unsigned long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFs0ll { signed char :0; unsigned long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFs0s { signed char :0; unsigned long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFu0c { signed char :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFu0i { signed char :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFu0ll { signed char :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFs0s_BFu0s { signed char :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c { signed char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFs0c { signed char :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFs0i { signed char :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFs0ll { signed char :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFs0s { signed char :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFu0c { signed char :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFu0i { signed char :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFu0ll { signed char :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0c_BFu0s { signed char :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i { signed char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFs0c { signed char :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFs0i { signed char :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFs0ll { signed char :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFs0s { signed char :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFu0c { signed char :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFu0i { signed char :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFu0ll { signed char :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0i_BFu0s { signed char :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll { signed char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFs0c { signed char :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFs0i { signed char :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFs0ll { signed char :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFs0s { signed char :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFu0c { signed char :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFu0i { signed char :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFu0ll { signed char :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0ll_BFu0s { signed char :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s { signed char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFs0c { signed char :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFs0i { signed char :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFs0ll { signed char :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFs0s { signed char :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFu0c { signed char :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFu0i { signed char :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFu0ll { signed char :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0ll_BFu0s_BFu0s { signed char :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s { signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c { signed char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFs0c { signed char :0; unsigned short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFs0i { signed char :0; unsigned short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFs0ll { signed char :0; unsigned short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFs0s { signed char :0; unsigned short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFu0c { signed char :0; unsigned short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFu0i { signed char :0; unsigned short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFu0ll { signed char :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0c_BFu0s { signed char :0; unsigned short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i { signed char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFs0c { signed char :0; unsigned short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFs0i { signed char :0; unsigned short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFs0ll { signed char :0; unsigned short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFs0s { signed char :0; unsigned short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFu0c { signed char :0; unsigned short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFu0i { signed char :0; unsigned short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFu0ll { signed char :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0i_BFu0s { signed char :0; unsigned short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll { signed char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFs0c { signed char :0; unsigned short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFs0i { signed char :0; unsigned short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFs0ll { signed char :0; unsigned short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFs0s { signed char :0; unsigned short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFu0c { signed char :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFu0i { signed char :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFu0ll { signed char :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0ll_BFu0s { signed char :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s { signed char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFs0c { signed char :0; unsigned short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFs0i { signed char :0; unsigned short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFs0ll { signed char :0; unsigned short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFs0s { signed char :0; unsigned short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFu0c { signed char :0; unsigned short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFu0i { signed char :0; unsigned short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFu0ll { signed char :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFs0s_BFu0s { signed char :0; unsigned short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c { signed char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFs0c { signed char :0; unsigned short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFs0i { signed char :0; unsigned short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFs0ll { signed char :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFs0s { signed char :0; unsigned short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFu0c { signed char :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFu0i { signed char :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFu0ll { signed char :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0c_BFu0s { signed char :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i { signed char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFs0c { signed char :0; unsigned short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFs0i { signed char :0; unsigned short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFs0ll { signed char :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFs0s { signed char :0; unsigned short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFu0c { signed char :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFu0i { signed char :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFu0ll { signed char :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0i_BFu0s { signed char :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll { signed char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFs0c { signed char :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFs0i { signed char :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFs0ll { signed char :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFs0s { signed char :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFu0c { signed char :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFu0i { signed char :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFu0ll { signed char :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0ll_BFu0s { signed char :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s { signed char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFs0c { signed char :0; unsigned short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFs0i { signed char :0; unsigned short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFs0ll { signed char :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFs0s { signed char :0; unsigned short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFu0c { signed char :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFu0i { signed char :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFu0ll { signed char :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0c_BFu0s_BFu0s_BFu0s { signed char :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c { signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c { signed int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFs0c { signed int :0; signed char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFs0i { signed int :0; signed char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFs0ll { signed int :0; signed char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFs0s { signed int :0; signed char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFu0c { signed int :0; signed char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFu0i { signed int :0; signed char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFu0ll { signed int :0; signed char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0c_BFu0s { signed int :0; signed char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i { signed int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFs0c { signed int :0; signed char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFs0i { signed int :0; signed char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFs0ll { signed int :0; signed char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFs0s { signed int :0; signed char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFu0c { signed int :0; signed char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFu0i { signed int :0; signed char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFu0ll { signed int :0; signed char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0i_BFu0s { signed int :0; signed char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll { signed int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFs0c { signed int :0; signed char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFs0i { signed int :0; signed char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFs0ll { signed int :0; signed char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFs0s { signed int :0; signed char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFu0c { signed int :0; signed char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFu0i { signed int :0; signed char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFu0ll { signed int :0; signed char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0ll_BFu0s { signed int :0; signed char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s { signed int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFs0c { signed int :0; signed char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFs0i { signed int :0; signed char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFs0ll { signed int :0; signed char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFs0s { signed int :0; signed char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFu0c { signed int :0; signed char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFu0i { signed int :0; signed char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFu0ll { signed int :0; signed char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFs0s_BFu0s { signed int :0; signed char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c { signed int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFs0c { signed int :0; signed char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFs0i { signed int :0; signed char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFs0ll { signed int :0; signed char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFs0s { signed int :0; signed char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFu0c { signed int :0; signed char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFu0i { signed int :0; signed char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFu0ll { signed int :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0c_BFu0s { signed int :0; signed char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i { signed int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFs0c { signed int :0; signed char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFs0i { signed int :0; signed char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFs0ll { signed int :0; signed char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFs0s { signed int :0; signed char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFu0c { signed int :0; signed char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFu0i { signed int :0; signed char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFu0ll { signed int :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0i_BFu0s { signed int :0; signed char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll { signed int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFs0c { signed int :0; signed char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFs0i { signed int :0; signed char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFs0ll { signed int :0; signed char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFs0s { signed int :0; signed char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFu0c { signed int :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFu0i { signed int :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFu0ll { signed int :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0ll_BFu0s { signed int :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s { signed int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFs0c { signed int :0; signed char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFs0i { signed int :0; signed char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFs0ll { signed int :0; signed char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFs0s { signed int :0; signed char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFu0c { signed int :0; signed char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFu0i { signed int :0; signed char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFu0ll { signed int :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0c_BFu0s_BFu0s { signed int :0; signed char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i { signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c { signed int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFs0c { signed int :0; signed int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFs0i { signed int :0; signed int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFs0ll { signed int :0; signed int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFs0s { signed int :0; signed int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFu0c { signed int :0; signed int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFu0i { signed int :0; signed int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFu0ll { signed int :0; signed int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0c_BFu0s { signed int :0; signed int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i { signed int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFs0c { signed int :0; signed int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFs0i { signed int :0; signed int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFs0ll { signed int :0; signed int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFs0s { signed int :0; signed int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFu0c { signed int :0; signed int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFu0i { signed int :0; signed int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFu0ll { signed int :0; signed int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0i_BFu0s { signed int :0; signed int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll { signed int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFs0c { signed int :0; signed int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFs0i { signed int :0; signed int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFs0ll { signed int :0; signed int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFs0s { signed int :0; signed int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFu0c { signed int :0; signed int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFu0i { signed int :0; signed int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFu0ll { signed int :0; signed int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0ll_BFu0s { signed int :0; signed int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s { signed int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFs0c { signed int :0; signed int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFs0i { signed int :0; signed int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFs0ll { signed int :0; signed int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFs0s { signed int :0; signed int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFu0c { signed int :0; signed int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFu0i { signed int :0; signed int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFu0ll { signed int :0; signed int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFs0s_BFu0s { signed int :0; signed int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c { signed int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFs0c { signed int :0; signed int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFs0i { signed int :0; signed int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFs0ll { signed int :0; signed int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFs0s { signed int :0; signed int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFu0c { signed int :0; signed int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFu0i { signed int :0; signed int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFu0ll { signed int :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0c_BFu0s { signed int :0; signed int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i { signed int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFs0c { signed int :0; signed int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFs0i { signed int :0; signed int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFs0ll { signed int :0; signed int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFs0s { signed int :0; signed int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFu0c { signed int :0; signed int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFu0i { signed int :0; signed int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFu0ll { signed int :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0i_BFu0s { signed int :0; signed int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll { signed int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFs0c { signed int :0; signed int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFs0i { signed int :0; signed int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFs0ll { signed int :0; signed int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFs0s { signed int :0; signed int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFu0c { signed int :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFu0i { signed int :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFu0ll { signed int :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0ll_BFu0s { signed int :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s { signed int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFs0c { signed int :0; signed int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFs0i { signed int :0; signed int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFs0ll { signed int :0; signed int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFs0s { signed int :0; signed int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFu0c { signed int :0; signed int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFu0i { signed int :0; signed int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFu0ll { signed int :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0i_BFu0s_BFu0s { signed int :0; signed int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll { signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c { signed int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFs0c { signed int :0; signed long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFs0i { signed int :0; signed long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFs0ll { signed int :0; signed long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFs0s { signed int :0; signed long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFu0c { signed int :0; signed long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFu0i { signed int :0; signed long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFu0ll { signed int :0; signed long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0c_BFu0s { signed int :0; signed long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i { signed int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFs0c { signed int :0; signed long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFs0i { signed int :0; signed long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFs0ll { signed int :0; signed long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFs0s { signed int :0; signed long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFu0c { signed int :0; signed long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFu0i { signed int :0; signed long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFu0ll { signed int :0; signed long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0i_BFu0s { signed int :0; signed long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll { signed int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFs0c { signed int :0; signed long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFs0i { signed int :0; signed long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFs0ll { signed int :0; signed long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFs0s { signed int :0; signed long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFu0c { signed int :0; signed long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFu0i { signed int :0; signed long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFu0ll { signed int :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0ll_BFu0s { signed int :0; signed long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s { signed int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFs0c { signed int :0; signed long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFs0i { signed int :0; signed long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFs0ll { signed int :0; signed long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFs0s { signed int :0; signed long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFu0c { signed int :0; signed long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFu0i { signed int :0; signed long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFu0ll { signed int :0; signed long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFs0s_BFu0s { signed int :0; signed long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c { signed int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFs0c { signed int :0; signed long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFs0i { signed int :0; signed long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFs0ll { signed int :0; signed long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFs0s { signed int :0; signed long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFu0c { signed int :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFu0i { signed int :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFu0ll { signed int :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0c_BFu0s { signed int :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i { signed int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFs0c { signed int :0; signed long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFs0i { signed int :0; signed long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFs0ll { signed int :0; signed long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFs0s { signed int :0; signed long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFu0c { signed int :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFu0i { signed int :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFu0ll { signed int :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0i_BFu0s { signed int :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll { signed int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFs0c { signed int :0; signed long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFs0i { signed int :0; signed long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFs0ll { signed int :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFs0s { signed int :0; signed long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFu0c { signed int :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFu0i { signed int :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFu0ll { signed int :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0ll_BFu0s { signed int :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s { signed int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFs0c { signed int :0; signed long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFs0i { signed int :0; signed long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFs0ll { signed int :0; signed long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFs0s { signed int :0; signed long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFu0c { signed int :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFu0i { signed int :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFu0ll { signed int :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0ll_BFu0s_BFu0s { signed int :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s { signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c { signed int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFs0c { signed int :0; signed short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFs0i { signed int :0; signed short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFs0ll { signed int :0; signed short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFs0s { signed int :0; signed short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFu0c { signed int :0; signed short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFu0i { signed int :0; signed short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFu0ll { signed int :0; signed short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0c_BFu0s { signed int :0; signed short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i { signed int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFs0c { signed int :0; signed short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFs0i { signed int :0; signed short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFs0ll { signed int :0; signed short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFs0s { signed int :0; signed short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFu0c { signed int :0; signed short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFu0i { signed int :0; signed short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFu0ll { signed int :0; signed short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0i_BFu0s { signed int :0; signed short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll { signed int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFs0c { signed int :0; signed short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFs0i { signed int :0; signed short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFs0ll { signed int :0; signed short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFs0s { signed int :0; signed short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFu0c { signed int :0; signed short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFu0i { signed int :0; signed short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFu0ll { signed int :0; signed short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0ll_BFu0s { signed int :0; signed short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s { signed int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFs0c { signed int :0; signed short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFs0i { signed int :0; signed short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFs0ll { signed int :0; signed short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFs0s { signed int :0; signed short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFu0c { signed int :0; signed short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFu0i { signed int :0; signed short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFu0ll { signed int :0; signed short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFs0s_BFu0s { signed int :0; signed short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c { signed int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFs0c { signed int :0; signed short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFs0i { signed int :0; signed short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFs0ll { signed int :0; signed short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFs0s { signed int :0; signed short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFu0c { signed int :0; signed short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFu0i { signed int :0; signed short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFu0ll { signed int :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0c_BFu0s { signed int :0; signed short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i { signed int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFs0c { signed int :0; signed short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFs0i { signed int :0; signed short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFs0ll { signed int :0; signed short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFs0s { signed int :0; signed short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFu0c { signed int :0; signed short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFu0i { signed int :0; signed short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFu0ll { signed int :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0i_BFu0s { signed int :0; signed short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll { signed int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFs0c { signed int :0; signed short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFs0i { signed int :0; signed short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFs0ll { signed int :0; signed short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFs0s { signed int :0; signed short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFu0c { signed int :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFu0i { signed int :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFu0ll { signed int :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0ll_BFu0s { signed int :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s { signed int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFs0c { signed int :0; signed short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFs0i { signed int :0; signed short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFs0ll { signed int :0; signed short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFs0s { signed int :0; signed short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFu0c { signed int :0; signed short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFu0i { signed int :0; signed short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFu0ll { signed int :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFs0s_BFu0s_BFu0s { signed int :0; signed short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c { signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c { signed int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFs0c { signed int :0; unsigned char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFs0i { signed int :0; unsigned char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFs0ll { signed int :0; unsigned char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFs0s { signed int :0; unsigned char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFu0c { signed int :0; unsigned char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFu0i { signed int :0; unsigned char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFu0ll { signed int :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0c_BFu0s { signed int :0; unsigned char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i { signed int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFs0c { signed int :0; unsigned char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFs0i { signed int :0; unsigned char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFs0ll { signed int :0; unsigned char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFs0s { signed int :0; unsigned char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFu0c { signed int :0; unsigned char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFu0i { signed int :0; unsigned char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFu0ll { signed int :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0i_BFu0s { signed int :0; unsigned char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll { signed int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFs0c { signed int :0; unsigned char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFs0i { signed int :0; unsigned char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFs0ll { signed int :0; unsigned char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFs0s { signed int :0; unsigned char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFu0c { signed int :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFu0i { signed int :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFu0ll { signed int :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0ll_BFu0s { signed int :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s { signed int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFs0c { signed int :0; unsigned char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFs0i { signed int :0; unsigned char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFs0ll { signed int :0; unsigned char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFs0s { signed int :0; unsigned char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFu0c { signed int :0; unsigned char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFu0i { signed int :0; unsigned char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFu0ll { signed int :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFs0s_BFu0s { signed int :0; unsigned char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c { signed int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFs0c { signed int :0; unsigned char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFs0i { signed int :0; unsigned char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFs0ll { signed int :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFs0s { signed int :0; unsigned char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFu0c { signed int :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFu0i { signed int :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFu0ll { signed int :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0c_BFu0s { signed int :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i { signed int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFs0c { signed int :0; unsigned char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFs0i { signed int :0; unsigned char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFs0ll { signed int :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFs0s { signed int :0; unsigned char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFu0c { signed int :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFu0i { signed int :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFu0ll { signed int :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0i_BFu0s { signed int :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll { signed int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFs0c { signed int :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFs0i { signed int :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFs0ll { signed int :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFs0s { signed int :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFu0c { signed int :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFu0i { signed int :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFu0ll { signed int :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0ll_BFu0s { signed int :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s { signed int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFs0c { signed int :0; unsigned char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFs0i { signed int :0; unsigned char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFs0ll { signed int :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFs0s { signed int :0; unsigned char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFu0c { signed int :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFu0i { signed int :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFu0ll { signed int :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0c_BFu0s_BFu0s { signed int :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i { signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c { signed int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFs0c { signed int :0; unsigned int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFs0i { signed int :0; unsigned int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFs0ll { signed int :0; unsigned int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFs0s { signed int :0; unsigned int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFu0c { signed int :0; unsigned int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFu0i { signed int :0; unsigned int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFu0ll { signed int :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0c_BFu0s { signed int :0; unsigned int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i { signed int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFs0c { signed int :0; unsigned int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFs0i { signed int :0; unsigned int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFs0ll { signed int :0; unsigned int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFs0s { signed int :0; unsigned int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFu0c { signed int :0; unsigned int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFu0i { signed int :0; unsigned int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFu0ll { signed int :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0i_BFu0s { signed int :0; unsigned int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll { signed int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFs0c { signed int :0; unsigned int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFs0i { signed int :0; unsigned int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFs0ll { signed int :0; unsigned int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFs0s { signed int :0; unsigned int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFu0c { signed int :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFu0i { signed int :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFu0ll { signed int :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0ll_BFu0s { signed int :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s { signed int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFs0c { signed int :0; unsigned int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFs0i { signed int :0; unsigned int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFs0ll { signed int :0; unsigned int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFs0s { signed int :0; unsigned int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFu0c { signed int :0; unsigned int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFu0i { signed int :0; unsigned int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFu0ll { signed int :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFs0s_BFu0s { signed int :0; unsigned int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c { signed int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFs0c { signed int :0; unsigned int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFs0i { signed int :0; unsigned int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFs0ll { signed int :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFs0s { signed int :0; unsigned int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFu0c { signed int :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFu0i { signed int :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFu0ll { signed int :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0c_BFu0s { signed int :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i { signed int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFs0c { signed int :0; unsigned int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFs0i { signed int :0; unsigned int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFs0ll { signed int :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFs0s { signed int :0; unsigned int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFu0c { signed int :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFu0i { signed int :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFu0ll { signed int :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0i_BFu0s { signed int :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll { signed int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFs0c { signed int :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFs0i { signed int :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFs0ll { signed int :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFs0s { signed int :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFu0c { signed int :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFu0i { signed int :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFu0ll { signed int :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0ll_BFu0s { signed int :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s { signed int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFs0c { signed int :0; unsigned int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFs0i { signed int :0; unsigned int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFs0ll { signed int :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFs0s { signed int :0; unsigned int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFu0c { signed int :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFu0i { signed int :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFu0ll { signed int :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0i_BFu0s_BFu0s { signed int :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll { signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c { signed int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFs0c { signed int :0; unsigned long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFs0i { signed int :0; unsigned long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFs0ll { signed int :0; unsigned long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFs0s { signed int :0; unsigned long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFu0c { signed int :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFu0i { signed int :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFu0ll { signed int :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0c_BFu0s { signed int :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i { signed int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFs0c { signed int :0; unsigned long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFs0i { signed int :0; unsigned long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFs0ll { signed int :0; unsigned long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFs0s { signed int :0; unsigned long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFu0c { signed int :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFu0i { signed int :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFu0ll { signed int :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0i_BFu0s { signed int :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll { signed int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFs0c { signed int :0; unsigned long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFs0i { signed int :0; unsigned long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFs0ll { signed int :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFs0s { signed int :0; unsigned long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFu0c { signed int :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFu0i { signed int :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFu0ll { signed int :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0ll_BFu0s { signed int :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s { signed int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFs0c { signed int :0; unsigned long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFs0i { signed int :0; unsigned long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFs0ll { signed int :0; unsigned long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFs0s { signed int :0; unsigned long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFu0c { signed int :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFu0i { signed int :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFu0ll { signed int :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFs0s_BFu0s { signed int :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c { signed int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFs0c { signed int :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFs0i { signed int :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFs0ll { signed int :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFs0s { signed int :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFu0c { signed int :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFu0i { signed int :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFu0ll { signed int :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0c_BFu0s { signed int :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i { signed int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFs0c { signed int :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFs0i { signed int :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFs0ll { signed int :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFs0s { signed int :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFu0c { signed int :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFu0i { signed int :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFu0ll { signed int :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0i_BFu0s { signed int :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll { signed int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFs0c { signed int :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFs0i { signed int :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFs0ll { signed int :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFs0s { signed int :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFu0c { signed int :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFu0i { signed int :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFu0ll { signed int :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0ll_BFu0s { signed int :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s { signed int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFs0c { signed int :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFs0i { signed int :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFs0ll { signed int :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFs0s { signed int :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFu0c { signed int :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFu0i { signed int :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFu0ll { signed int :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0ll_BFu0s_BFu0s { signed int :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s { signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c { signed int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFs0c { signed int :0; unsigned short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFs0i { signed int :0; unsigned short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFs0ll { signed int :0; unsigned short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFs0s { signed int :0; unsigned short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFu0c { signed int :0; unsigned short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFu0i { signed int :0; unsigned short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFu0ll { signed int :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0c_BFu0s { signed int :0; unsigned short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i { signed int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFs0c { signed int :0; unsigned short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFs0i { signed int :0; unsigned short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFs0ll { signed int :0; unsigned short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFs0s { signed int :0; unsigned short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFu0c { signed int :0; unsigned short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFu0i { signed int :0; unsigned short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFu0ll { signed int :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0i_BFu0s { signed int :0; unsigned short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll { signed int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFs0c { signed int :0; unsigned short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFs0i { signed int :0; unsigned short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFs0ll { signed int :0; unsigned short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFs0s { signed int :0; unsigned short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFu0c { signed int :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFu0i { signed int :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFu0ll { signed int :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0ll_BFu0s { signed int :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s { signed int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFs0c { signed int :0; unsigned short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFs0i { signed int :0; unsigned short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFs0ll { signed int :0; unsigned short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFs0s { signed int :0; unsigned short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFu0c { signed int :0; unsigned short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFu0i { signed int :0; unsigned short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFu0ll { signed int :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFs0s_BFu0s { signed int :0; unsigned short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c { signed int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFs0c { signed int :0; unsigned short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFs0i { signed int :0; unsigned short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFs0ll { signed int :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFs0s { signed int :0; unsigned short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFu0c { signed int :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFu0i { signed int :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFu0ll { signed int :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0c_BFu0s { signed int :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i { signed int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFs0c { signed int :0; unsigned short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFs0i { signed int :0; unsigned short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFs0ll { signed int :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFs0s { signed int :0; unsigned short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFu0c { signed int :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFu0i { signed int :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFu0ll { signed int :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0i_BFu0s { signed int :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll { signed int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFs0c { signed int :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFs0i { signed int :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFs0ll { signed int :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFs0s { signed int :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFu0c { signed int :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFu0i { signed int :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFu0ll { signed int :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0ll_BFu0s { signed int :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s { signed int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFs0c { signed int :0; unsigned short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFs0i { signed int :0; unsigned short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFs0ll { signed int :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFs0s { signed int :0; unsigned short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFu0c { signed int :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFu0i { signed int :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFu0ll { signed int :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0i_BFu0s_BFu0s_BFu0s { signed int :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c { signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c { signed long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFs0c { signed long long :0; signed char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFs0i { signed long long :0; signed char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFs0ll { signed long long :0; signed char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFs0s { signed long long :0; signed char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFu0c { signed long long :0; signed char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFu0i { signed long long :0; signed char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFu0ll { signed long long :0; signed char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0c_BFu0s { signed long long :0; signed char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i { signed long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFs0c { signed long long :0; signed char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFs0i { signed long long :0; signed char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFs0ll { signed long long :0; signed char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFs0s { signed long long :0; signed char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFu0c { signed long long :0; signed char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFu0i { signed long long :0; signed char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFu0ll { signed long long :0; signed char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0i_BFu0s { signed long long :0; signed char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll { signed long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFs0c { signed long long :0; signed char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFs0i { signed long long :0; signed char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFs0ll { signed long long :0; signed char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFs0s { signed long long :0; signed char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFu0c { signed long long :0; signed char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFu0i { signed long long :0; signed char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFu0ll { signed long long :0; signed char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0ll_BFu0s { signed long long :0; signed char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s { signed long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFs0c { signed long long :0; signed char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFs0i { signed long long :0; signed char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFs0ll { signed long long :0; signed char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFs0s { signed long long :0; signed char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFu0c { signed long long :0; signed char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFu0i { signed long long :0; signed char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFu0ll { signed long long :0; signed char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFs0s_BFu0s { signed long long :0; signed char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c { signed long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFs0c { signed long long :0; signed char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFs0i { signed long long :0; signed char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFs0ll { signed long long :0; signed char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFs0s { signed long long :0; signed char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFu0c { signed long long :0; signed char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFu0i { signed long long :0; signed char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFu0ll { signed long long :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0c_BFu0s { signed long long :0; signed char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i { signed long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFs0c { signed long long :0; signed char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFs0i { signed long long :0; signed char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFs0ll { signed long long :0; signed char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFs0s { signed long long :0; signed char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFu0c { signed long long :0; signed char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFu0i { signed long long :0; signed char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFu0ll { signed long long :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0i_BFu0s { signed long long :0; signed char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll { signed long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFs0c { signed long long :0; signed char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFs0i { signed long long :0; signed char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFs0ll { signed long long :0; signed char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFs0s { signed long long :0; signed char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFu0c { signed long long :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFu0i { signed long long :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFu0ll { signed long long :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0ll_BFu0s { signed long long :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s { signed long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFs0c { signed long long :0; signed char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFs0i { signed long long :0; signed char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFs0ll { signed long long :0; signed char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFs0s { signed long long :0; signed char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFu0c { signed long long :0; signed char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFu0i { signed long long :0; signed char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFu0ll { signed long long :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0c_BFu0s_BFu0s { signed long long :0; signed char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i { signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c { signed long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFs0c { signed long long :0; signed int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFs0i { signed long long :0; signed int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFs0ll { signed long long :0; signed int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFs0s { signed long long :0; signed int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFu0c { signed long long :0; signed int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFu0i { signed long long :0; signed int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFu0ll { signed long long :0; signed int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0c_BFu0s { signed long long :0; signed int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i { signed long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFs0c { signed long long :0; signed int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFs0i { signed long long :0; signed int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFs0ll { signed long long :0; signed int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFs0s { signed long long :0; signed int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFu0c { signed long long :0; signed int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFu0i { signed long long :0; signed int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFu0ll { signed long long :0; signed int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0i_BFu0s { signed long long :0; signed int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll { signed long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFs0c { signed long long :0; signed int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFs0i { signed long long :0; signed int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFs0ll { signed long long :0; signed int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFs0s { signed long long :0; signed int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFu0c { signed long long :0; signed int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFu0i { signed long long :0; signed int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFu0ll { signed long long :0; signed int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0ll_BFu0s { signed long long :0; signed int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s { signed long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFs0c { signed long long :0; signed int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFs0i { signed long long :0; signed int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFs0ll { signed long long :0; signed int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFs0s { signed long long :0; signed int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFu0c { signed long long :0; signed int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFu0i { signed long long :0; signed int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFu0ll { signed long long :0; signed int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFs0s_BFu0s { signed long long :0; signed int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c { signed long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFs0c { signed long long :0; signed int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFs0i { signed long long :0; signed int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFs0ll { signed long long :0; signed int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFs0s { signed long long :0; signed int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFu0c { signed long long :0; signed int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFu0i { signed long long :0; signed int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFu0ll { signed long long :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0c_BFu0s { signed long long :0; signed int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i { signed long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFs0c { signed long long :0; signed int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFs0i { signed long long :0; signed int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFs0ll { signed long long :0; signed int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFs0s { signed long long :0; signed int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFu0c { signed long long :0; signed int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFu0i { signed long long :0; signed int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFu0ll { signed long long :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0i_BFu0s { signed long long :0; signed int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll { signed long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFs0c { signed long long :0; signed int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFs0i { signed long long :0; signed int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFs0ll { signed long long :0; signed int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFs0s { signed long long :0; signed int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFu0c { signed long long :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFu0i { signed long long :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFu0ll { signed long long :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0ll_BFu0s { signed long long :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s { signed long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFs0c { signed long long :0; signed int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFs0i { signed long long :0; signed int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFs0ll { signed long long :0; signed int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFs0s { signed long long :0; signed int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFu0c { signed long long :0; signed int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFu0i { signed long long :0; signed int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFu0ll { signed long long :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0i_BFu0s_BFu0s { signed long long :0; signed int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll { signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c { signed long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFs0c { signed long long :0; signed long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFs0i { signed long long :0; signed long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFs0ll { signed long long :0; signed long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFs0s { signed long long :0; signed long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFu0c { signed long long :0; signed long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFu0i { signed long long :0; signed long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFu0ll { signed long long :0; signed long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0c_BFu0s { signed long long :0; signed long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i { signed long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFs0c { signed long long :0; signed long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFs0i { signed long long :0; signed long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFs0ll { signed long long :0; signed long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFs0s { signed long long :0; signed long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFu0c { signed long long :0; signed long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFu0i { signed long long :0; signed long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFu0ll { signed long long :0; signed long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0i_BFu0s { signed long long :0; signed long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll { signed long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFs0c { signed long long :0; signed long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFs0i { signed long long :0; signed long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFs0ll { signed long long :0; signed long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFs0s { signed long long :0; signed long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFu0c { signed long long :0; signed long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFu0i { signed long long :0; signed long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFu0ll { signed long long :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0ll_BFu0s { signed long long :0; signed long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s { signed long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFs0c { signed long long :0; signed long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFs0i { signed long long :0; signed long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFs0ll { signed long long :0; signed long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFs0s { signed long long :0; signed long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFu0c { signed long long :0; signed long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFu0i { signed long long :0; signed long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFu0ll { signed long long :0; signed long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFs0s_BFu0s { signed long long :0; signed long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c { signed long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFs0c { signed long long :0; signed long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFs0i { signed long long :0; signed long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFs0ll { signed long long :0; signed long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFs0s { signed long long :0; signed long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFu0c { signed long long :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFu0i { signed long long :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFu0ll { signed long long :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0c_BFu0s { signed long long :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i { signed long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFs0c { signed long long :0; signed long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFs0i { signed long long :0; signed long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFs0ll { signed long long :0; signed long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFs0s { signed long long :0; signed long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFu0c { signed long long :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFu0i { signed long long :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFu0ll { signed long long :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0i_BFu0s { signed long long :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll { signed long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFs0c { signed long long :0; signed long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFs0i { signed long long :0; signed long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFs0ll { signed long long :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFs0s { signed long long :0; signed long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFu0c { signed long long :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFu0i { signed long long :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFu0ll { signed long long :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0ll_BFu0s { signed long long :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s { signed long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFs0c { signed long long :0; signed long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFs0i { signed long long :0; signed long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFs0ll { signed long long :0; signed long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFs0s { signed long long :0; signed long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFu0c { signed long long :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFu0i { signed long long :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFu0ll { signed long long :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0ll_BFu0s_BFu0s { signed long long :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s { signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c { signed long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFs0c { signed long long :0; signed short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFs0i { signed long long :0; signed short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFs0ll { signed long long :0; signed short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFs0s { signed long long :0; signed short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFu0c { signed long long :0; signed short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFu0i { signed long long :0; signed short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFu0ll { signed long long :0; signed short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0c_BFu0s { signed long long :0; signed short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i { signed long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFs0c { signed long long :0; signed short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFs0i { signed long long :0; signed short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFs0ll { signed long long :0; signed short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFs0s { signed long long :0; signed short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFu0c { signed long long :0; signed short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFu0i { signed long long :0; signed short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFu0ll { signed long long :0; signed short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0i_BFu0s { signed long long :0; signed short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll { signed long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFs0c { signed long long :0; signed short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFs0i { signed long long :0; signed short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFs0ll { signed long long :0; signed short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFs0s { signed long long :0; signed short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFu0c { signed long long :0; signed short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFu0i { signed long long :0; signed short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFu0ll { signed long long :0; signed short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0ll_BFu0s { signed long long :0; signed short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s { signed long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFs0c { signed long long :0; signed short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFs0i { signed long long :0; signed short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFs0ll { signed long long :0; signed short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFs0s { signed long long :0; signed short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFu0c { signed long long :0; signed short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFu0i { signed long long :0; signed short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFu0ll { signed long long :0; signed short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFs0s_BFu0s { signed long long :0; signed short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c { signed long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFs0c { signed long long :0; signed short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFs0i { signed long long :0; signed short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFs0ll { signed long long :0; signed short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFs0s { signed long long :0; signed short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFu0c { signed long long :0; signed short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFu0i { signed long long :0; signed short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFu0ll { signed long long :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0c_BFu0s { signed long long :0; signed short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i { signed long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFs0c { signed long long :0; signed short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFs0i { signed long long :0; signed short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFs0ll { signed long long :0; signed short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFs0s { signed long long :0; signed short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFu0c { signed long long :0; signed short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFu0i { signed long long :0; signed short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFu0ll { signed long long :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0i_BFu0s { signed long long :0; signed short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll { signed long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFs0c { signed long long :0; signed short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFs0i { signed long long :0; signed short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFs0ll { signed long long :0; signed short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFs0s { signed long long :0; signed short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFu0c { signed long long :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFu0i { signed long long :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFu0ll { signed long long :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0ll_BFu0s { signed long long :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s { signed long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFs0c { signed long long :0; signed short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFs0i { signed long long :0; signed short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFs0ll { signed long long :0; signed short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFs0s { signed long long :0; signed short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFu0c { signed long long :0; signed short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFu0i { signed long long :0; signed short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFu0ll { signed long long :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFs0s_BFu0s_BFu0s { signed long long :0; signed short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c { signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c { signed long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFs0c { signed long long :0; unsigned char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFs0i { signed long long :0; unsigned char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFs0ll { signed long long :0; unsigned char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFs0s { signed long long :0; unsigned char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFu0c { signed long long :0; unsigned char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFu0i { signed long long :0; unsigned char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFu0ll { signed long long :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0c_BFu0s { signed long long :0; unsigned char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i { signed long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFs0c { signed long long :0; unsigned char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFs0i { signed long long :0; unsigned char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFs0ll { signed long long :0; unsigned char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFs0s { signed long long :0; unsigned char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFu0c { signed long long :0; unsigned char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFu0i { signed long long :0; unsigned char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFu0ll { signed long long :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0i_BFu0s { signed long long :0; unsigned char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll { signed long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFs0c { signed long long :0; unsigned char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFs0i { signed long long :0; unsigned char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFs0ll { signed long long :0; unsigned char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFs0s { signed long long :0; unsigned char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFu0c { signed long long :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFu0i { signed long long :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFu0ll { signed long long :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0ll_BFu0s { signed long long :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s { signed long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFs0c { signed long long :0; unsigned char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFs0i { signed long long :0; unsigned char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFs0ll { signed long long :0; unsigned char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFs0s { signed long long :0; unsigned char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFu0c { signed long long :0; unsigned char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFu0i { signed long long :0; unsigned char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFu0ll { signed long long :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFs0s_BFu0s { signed long long :0; unsigned char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c { signed long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFs0c { signed long long :0; unsigned char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFs0i { signed long long :0; unsigned char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFs0ll { signed long long :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFs0s { signed long long :0; unsigned char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFu0c { signed long long :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFu0i { signed long long :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFu0ll { signed long long :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0c_BFu0s { signed long long :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i { signed long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFs0c { signed long long :0; unsigned char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFs0i { signed long long :0; unsigned char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFs0ll { signed long long :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFs0s { signed long long :0; unsigned char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFu0c { signed long long :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFu0i { signed long long :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFu0ll { signed long long :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0i_BFu0s { signed long long :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll { signed long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFs0c { signed long long :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFs0i { signed long long :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFs0ll { signed long long :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFs0s { signed long long :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFu0c { signed long long :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFu0i { signed long long :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFu0ll { signed long long :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0ll_BFu0s { signed long long :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s { signed long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFs0c { signed long long :0; unsigned char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFs0i { signed long long :0; unsigned char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFs0ll { signed long long :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFs0s { signed long long :0; unsigned char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFu0c { signed long long :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFu0i { signed long long :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFu0ll { signed long long :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0c_BFu0s_BFu0s { signed long long :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i { signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c { signed long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFs0c { signed long long :0; unsigned int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFs0i { signed long long :0; unsigned int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFs0ll { signed long long :0; unsigned int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFs0s { signed long long :0; unsigned int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFu0c { signed long long :0; unsigned int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFu0i { signed long long :0; unsigned int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFu0ll { signed long long :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0c_BFu0s { signed long long :0; unsigned int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i { signed long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFs0c { signed long long :0; unsigned int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFs0i { signed long long :0; unsigned int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFs0ll { signed long long :0; unsigned int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFs0s { signed long long :0; unsigned int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFu0c { signed long long :0; unsigned int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFu0i { signed long long :0; unsigned int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFu0ll { signed long long :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0i_BFu0s { signed long long :0; unsigned int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll { signed long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFs0c { signed long long :0; unsigned int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFs0i { signed long long :0; unsigned int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFs0ll { signed long long :0; unsigned int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFs0s { signed long long :0; unsigned int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFu0c { signed long long :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFu0i { signed long long :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFu0ll { signed long long :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0ll_BFu0s { signed long long :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s { signed long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFs0c { signed long long :0; unsigned int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFs0i { signed long long :0; unsigned int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFs0ll { signed long long :0; unsigned int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFs0s { signed long long :0; unsigned int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFu0c { signed long long :0; unsigned int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFu0i { signed long long :0; unsigned int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFu0ll { signed long long :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFs0s_BFu0s { signed long long :0; unsigned int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c { signed long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFs0c { signed long long :0; unsigned int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFs0i { signed long long :0; unsigned int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFs0ll { signed long long :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFs0s { signed long long :0; unsigned int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFu0c { signed long long :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFu0i { signed long long :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFu0ll { signed long long :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0c_BFu0s { signed long long :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i { signed long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFs0c { signed long long :0; unsigned int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFs0i { signed long long :0; unsigned int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFs0ll { signed long long :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFs0s { signed long long :0; unsigned int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFu0c { signed long long :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFu0i { signed long long :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFu0ll { signed long long :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0i_BFu0s { signed long long :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll { signed long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFs0c { signed long long :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFs0i { signed long long :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFs0ll { signed long long :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFs0s { signed long long :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFu0c { signed long long :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFu0i { signed long long :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFu0ll { signed long long :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0ll_BFu0s { signed long long :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s { signed long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFs0c { signed long long :0; unsigned int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFs0i { signed long long :0; unsigned int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFs0ll { signed long long :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFs0s { signed long long :0; unsigned int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFu0c { signed long long :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFu0i { signed long long :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFu0ll { signed long long :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0i_BFu0s_BFu0s { signed long long :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll { signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c { signed long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFs0c { signed long long :0; unsigned long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFs0i { signed long long :0; unsigned long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFs0ll { signed long long :0; unsigned long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFs0s { signed long long :0; unsigned long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFu0c { signed long long :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFu0i { signed long long :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFu0ll { signed long long :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0c_BFu0s { signed long long :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i { signed long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFs0c { signed long long :0; unsigned long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFs0i { signed long long :0; unsigned long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFs0ll { signed long long :0; unsigned long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFs0s { signed long long :0; unsigned long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFu0c { signed long long :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFu0i { signed long long :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFu0ll { signed long long :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0i_BFu0s { signed long long :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll { signed long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFs0c { signed long long :0; unsigned long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFs0i { signed long long :0; unsigned long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFs0ll { signed long long :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFs0s { signed long long :0; unsigned long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFu0c { signed long long :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFu0i { signed long long :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFu0ll { signed long long :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0ll_BFu0s { signed long long :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s { signed long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFs0c { signed long long :0; unsigned long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFs0i { signed long long :0; unsigned long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFs0ll { signed long long :0; unsigned long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFs0s { signed long long :0; unsigned long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFu0c { signed long long :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFu0i { signed long long :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFu0ll { signed long long :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFs0s_BFu0s { signed long long :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c { signed long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFs0c { signed long long :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFs0i { signed long long :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFs0ll { signed long long :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFs0s { signed long long :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFu0c { signed long long :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFu0i { signed long long :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFu0ll { signed long long :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0c_BFu0s { signed long long :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i { signed long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFs0c { signed long long :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFs0i { signed long long :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFs0ll { signed long long :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFs0s { signed long long :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFu0c { signed long long :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFu0i { signed long long :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFu0ll { signed long long :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0i_BFu0s { signed long long :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll { signed long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFs0c { signed long long :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFs0i { signed long long :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFs0ll { signed long long :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFs0s { signed long long :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFu0c { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFu0i { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFu0ll { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0ll_BFu0s { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s { signed long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFs0c { signed long long :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFs0i { signed long long :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFs0ll { signed long long :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFs0s { signed long long :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFu0c { signed long long :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFu0i { signed long long :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFu0ll { signed long long :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0ll_BFu0s_BFu0s { signed long long :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s { signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c { signed long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFs0c { signed long long :0; unsigned short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFs0i { signed long long :0; unsigned short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFs0ll { signed long long :0; unsigned short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFs0s { signed long long :0; unsigned short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFu0c { signed long long :0; unsigned short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFu0i { signed long long :0; unsigned short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFu0ll { signed long long :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0c_BFu0s { signed long long :0; unsigned short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i { signed long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFs0c { signed long long :0; unsigned short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFs0i { signed long long :0; unsigned short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFs0ll { signed long long :0; unsigned short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFs0s { signed long long :0; unsigned short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFu0c { signed long long :0; unsigned short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFu0i { signed long long :0; unsigned short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFu0ll { signed long long :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0i_BFu0s { signed long long :0; unsigned short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll { signed long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFs0c { signed long long :0; unsigned short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFs0i { signed long long :0; unsigned short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFs0ll { signed long long :0; unsigned short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFs0s { signed long long :0; unsigned short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFu0c { signed long long :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFu0i { signed long long :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFu0ll { signed long long :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0ll_BFu0s { signed long long :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s { signed long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFs0c { signed long long :0; unsigned short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFs0i { signed long long :0; unsigned short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFs0ll { signed long long :0; unsigned short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFs0s { signed long long :0; unsigned short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFu0c { signed long long :0; unsigned short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFu0i { signed long long :0; unsigned short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFu0ll { signed long long :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFs0s_BFu0s { signed long long :0; unsigned short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c { signed long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFs0c { signed long long :0; unsigned short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFs0i { signed long long :0; unsigned short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFs0ll { signed long long :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFs0s { signed long long :0; unsigned short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFu0c { signed long long :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFu0i { signed long long :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFu0ll { signed long long :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0c_BFu0s { signed long long :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i { signed long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFs0c { signed long long :0; unsigned short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFs0i { signed long long :0; unsigned short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFs0ll { signed long long :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFs0s { signed long long :0; unsigned short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFu0c { signed long long :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFu0i { signed long long :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFu0ll { signed long long :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0i_BFu0s { signed long long :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll { signed long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFs0c { signed long long :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFs0i { signed long long :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFs0ll { signed long long :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFs0s { signed long long :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFu0c { signed long long :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFu0i { signed long long :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFu0ll { signed long long :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0ll_BFu0s { signed long long :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s { signed long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFs0c { signed long long :0; unsigned short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFs0i { signed long long :0; unsigned short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFs0ll { signed long long :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFs0s { signed long long :0; unsigned short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFu0c { signed long long :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFu0i { signed long long :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFu0ll { signed long long :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0ll_BFu0s_BFu0s_BFu0s { signed long long :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c { signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c { signed short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFs0c { signed short :0; signed char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFs0i { signed short :0; signed char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFs0ll { signed short :0; signed char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFs0s { signed short :0; signed char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFu0c { signed short :0; signed char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFu0i { signed short :0; signed char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFu0ll { signed short :0; signed char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0c_BFu0s { signed short :0; signed char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i { signed short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFs0c { signed short :0; signed char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFs0i { signed short :0; signed char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFs0ll { signed short :0; signed char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFs0s { signed short :0; signed char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFu0c { signed short :0; signed char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFu0i { signed short :0; signed char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFu0ll { signed short :0; signed char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0i_BFu0s { signed short :0; signed char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll { signed short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFs0c { signed short :0; signed char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFs0i { signed short :0; signed char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFs0ll { signed short :0; signed char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFs0s { signed short :0; signed char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFu0c { signed short :0; signed char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFu0i { signed short :0; signed char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFu0ll { signed short :0; signed char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0ll_BFu0s { signed short :0; signed char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s { signed short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFs0c { signed short :0; signed char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFs0i { signed short :0; signed char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFs0ll { signed short :0; signed char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFs0s { signed short :0; signed char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFu0c { signed short :0; signed char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFu0i { signed short :0; signed char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFu0ll { signed short :0; signed char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFs0s_BFu0s { signed short :0; signed char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c { signed short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFs0c { signed short :0; signed char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFs0i { signed short :0; signed char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFs0ll { signed short :0; signed char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFs0s { signed short :0; signed char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFu0c { signed short :0; signed char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFu0i { signed short :0; signed char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFu0ll { signed short :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0c_BFu0s { signed short :0; signed char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i { signed short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFs0c { signed short :0; signed char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFs0i { signed short :0; signed char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFs0ll { signed short :0; signed char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFs0s { signed short :0; signed char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFu0c { signed short :0; signed char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFu0i { signed short :0; signed char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFu0ll { signed short :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0i_BFu0s { signed short :0; signed char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll { signed short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFs0c { signed short :0; signed char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFs0i { signed short :0; signed char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFs0ll { signed short :0; signed char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFs0s { signed short :0; signed char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFu0c { signed short :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFu0i { signed short :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFu0ll { signed short :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0ll_BFu0s { signed short :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s { signed short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFs0c { signed short :0; signed char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFs0i { signed short :0; signed char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFs0ll { signed short :0; signed char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFs0s { signed short :0; signed char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFu0c { signed short :0; signed char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFu0i { signed short :0; signed char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFu0ll { signed short :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0c_BFu0s_BFu0s { signed short :0; signed char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i { signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c { signed short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFs0c { signed short :0; signed int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFs0i { signed short :0; signed int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFs0ll { signed short :0; signed int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFs0s { signed short :0; signed int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFu0c { signed short :0; signed int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFu0i { signed short :0; signed int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFu0ll { signed short :0; signed int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0c_BFu0s { signed short :0; signed int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i { signed short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFs0c { signed short :0; signed int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFs0i { signed short :0; signed int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFs0ll { signed short :0; signed int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFs0s { signed short :0; signed int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFu0c { signed short :0; signed int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFu0i { signed short :0; signed int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFu0ll { signed short :0; signed int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0i_BFu0s { signed short :0; signed int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll { signed short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFs0c { signed short :0; signed int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFs0i { signed short :0; signed int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFs0ll { signed short :0; signed int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFs0s { signed short :0; signed int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFu0c { signed short :0; signed int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFu0i { signed short :0; signed int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFu0ll { signed short :0; signed int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0ll_BFu0s { signed short :0; signed int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s { signed short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFs0c { signed short :0; signed int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFs0i { signed short :0; signed int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFs0ll { signed short :0; signed int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFs0s { signed short :0; signed int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFu0c { signed short :0; signed int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFu0i { signed short :0; signed int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFu0ll { signed short :0; signed int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFs0s_BFu0s { signed short :0; signed int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c { signed short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFs0c { signed short :0; signed int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFs0i { signed short :0; signed int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFs0ll { signed short :0; signed int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFs0s { signed short :0; signed int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFu0c { signed short :0; signed int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFu0i { signed short :0; signed int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFu0ll { signed short :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0c_BFu0s { signed short :0; signed int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i { signed short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFs0c { signed short :0; signed int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFs0i { signed short :0; signed int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFs0ll { signed short :0; signed int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFs0s { signed short :0; signed int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFu0c { signed short :0; signed int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFu0i { signed short :0; signed int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFu0ll { signed short :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0i_BFu0s { signed short :0; signed int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll { signed short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFs0c { signed short :0; signed int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFs0i { signed short :0; signed int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFs0ll { signed short :0; signed int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFs0s { signed short :0; signed int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFu0c { signed short :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFu0i { signed short :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFu0ll { signed short :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0ll_BFu0s { signed short :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s { signed short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFs0c { signed short :0; signed int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFs0i { signed short :0; signed int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFs0ll { signed short :0; signed int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFs0s { signed short :0; signed int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFu0c { signed short :0; signed int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFu0i { signed short :0; signed int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFu0ll { signed short :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0i_BFu0s_BFu0s { signed short :0; signed int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll { signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c { signed short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFs0c { signed short :0; signed long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFs0i { signed short :0; signed long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFs0ll { signed short :0; signed long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFs0s { signed short :0; signed long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFu0c { signed short :0; signed long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFu0i { signed short :0; signed long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFu0ll { signed short :0; signed long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0c_BFu0s { signed short :0; signed long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i { signed short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFs0c { signed short :0; signed long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFs0i { signed short :0; signed long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFs0ll { signed short :0; signed long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFs0s { signed short :0; signed long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFu0c { signed short :0; signed long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFu0i { signed short :0; signed long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFu0ll { signed short :0; signed long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0i_BFu0s { signed short :0; signed long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll { signed short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFs0c { signed short :0; signed long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFs0i { signed short :0; signed long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFs0ll { signed short :0; signed long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFs0s { signed short :0; signed long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFu0c { signed short :0; signed long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFu0i { signed short :0; signed long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFu0ll { signed short :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0ll_BFu0s { signed short :0; signed long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s { signed short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFs0c { signed short :0; signed long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFs0i { signed short :0; signed long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFs0ll { signed short :0; signed long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFs0s { signed short :0; signed long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFu0c { signed short :0; signed long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFu0i { signed short :0; signed long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFu0ll { signed short :0; signed long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFs0s_BFu0s { signed short :0; signed long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c { signed short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFs0c { signed short :0; signed long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFs0i { signed short :0; signed long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFs0ll { signed short :0; signed long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFs0s { signed short :0; signed long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFu0c { signed short :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFu0i { signed short :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFu0ll { signed short :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0c_BFu0s { signed short :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i { signed short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFs0c { signed short :0; signed long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFs0i { signed short :0; signed long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFs0ll { signed short :0; signed long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFs0s { signed short :0; signed long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFu0c { signed short :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFu0i { signed short :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFu0ll { signed short :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0i_BFu0s { signed short :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll { signed short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFs0c { signed short :0; signed long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFs0i { signed short :0; signed long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFs0ll { signed short :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFs0s { signed short :0; signed long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFu0c { signed short :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFu0i { signed short :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFu0ll { signed short :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0ll_BFu0s { signed short :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s { signed short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFs0c { signed short :0; signed long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFs0i { signed short :0; signed long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFs0ll { signed short :0; signed long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFs0s { signed short :0; signed long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFu0c { signed short :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFu0i { signed short :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFu0ll { signed short :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0ll_BFu0s_BFu0s { signed short :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s { signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c { signed short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFs0c { signed short :0; signed short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFs0i { signed short :0; signed short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFs0ll { signed short :0; signed short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFs0s { signed short :0; signed short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFu0c { signed short :0; signed short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFu0i { signed short :0; signed short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFu0ll { signed short :0; signed short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0c_BFu0s { signed short :0; signed short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i { signed short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFs0c { signed short :0; signed short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFs0i { signed short :0; signed short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFs0ll { signed short :0; signed short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFs0s { signed short :0; signed short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFu0c { signed short :0; signed short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFu0i { signed short :0; signed short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFu0ll { signed short :0; signed short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0i_BFu0s { signed short :0; signed short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll { signed short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFs0c { signed short :0; signed short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFs0i { signed short :0; signed short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFs0ll { signed short :0; signed short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFs0s { signed short :0; signed short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFu0c { signed short :0; signed short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFu0i { signed short :0; signed short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFu0ll { signed short :0; signed short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0ll_BFu0s { signed short :0; signed short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s { signed short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFs0c { signed short :0; signed short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFs0i { signed short :0; signed short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFs0ll { signed short :0; signed short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFs0s { signed short :0; signed short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFu0c { signed short :0; signed short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFu0i { signed short :0; signed short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFu0ll { signed short :0; signed short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFs0s_BFu0s { signed short :0; signed short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c { signed short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFs0c { signed short :0; signed short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFs0i { signed short :0; signed short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFs0ll { signed short :0; signed short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFs0s { signed short :0; signed short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFu0c { signed short :0; signed short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFu0i { signed short :0; signed short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFu0ll { signed short :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0c_BFu0s { signed short :0; signed short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i { signed short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFs0c { signed short :0; signed short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFs0i { signed short :0; signed short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFs0ll { signed short :0; signed short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFs0s { signed short :0; signed short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFu0c { signed short :0; signed short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFu0i { signed short :0; signed short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFu0ll { signed short :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0i_BFu0s { signed short :0; signed short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll { signed short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFs0c { signed short :0; signed short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFs0i { signed short :0; signed short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFs0ll { signed short :0; signed short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFs0s { signed short :0; signed short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFu0c { signed short :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFu0i { signed short :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFu0ll { signed short :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0ll_BFu0s { signed short :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s { signed short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFs0c { signed short :0; signed short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFs0i { signed short :0; signed short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFs0ll { signed short :0; signed short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFs0s { signed short :0; signed short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFu0c { signed short :0; signed short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFu0i { signed short :0; signed short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFu0ll { signed short :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFs0s_BFu0s_BFu0s { signed short :0; signed short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c { signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c { signed short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFs0c { signed short :0; unsigned char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFs0i { signed short :0; unsigned char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFs0ll { signed short :0; unsigned char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFs0s { signed short :0; unsigned char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFu0c { signed short :0; unsigned char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFu0i { signed short :0; unsigned char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFu0ll { signed short :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0c_BFu0s { signed short :0; unsigned char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i { signed short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFs0c { signed short :0; unsigned char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFs0i { signed short :0; unsigned char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFs0ll { signed short :0; unsigned char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFs0s { signed short :0; unsigned char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFu0c { signed short :0; unsigned char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFu0i { signed short :0; unsigned char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFu0ll { signed short :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0i_BFu0s { signed short :0; unsigned char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll { signed short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFs0c { signed short :0; unsigned char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFs0i { signed short :0; unsigned char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFs0ll { signed short :0; unsigned char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFs0s { signed short :0; unsigned char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFu0c { signed short :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFu0i { signed short :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFu0ll { signed short :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0ll_BFu0s { signed short :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s { signed short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFs0c { signed short :0; unsigned char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFs0i { signed short :0; unsigned char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFs0ll { signed short :0; unsigned char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFs0s { signed short :0; unsigned char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFu0c { signed short :0; unsigned char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFu0i { signed short :0; unsigned char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFu0ll { signed short :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFs0s_BFu0s { signed short :0; unsigned char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c { signed short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFs0c { signed short :0; unsigned char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFs0i { signed short :0; unsigned char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFs0ll { signed short :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFs0s { signed short :0; unsigned char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFu0c { signed short :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFu0i { signed short :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFu0ll { signed short :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0c_BFu0s { signed short :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i { signed short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFs0c { signed short :0; unsigned char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFs0i { signed short :0; unsigned char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFs0ll { signed short :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFs0s { signed short :0; unsigned char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFu0c { signed short :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFu0i { signed short :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFu0ll { signed short :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0i_BFu0s { signed short :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll { signed short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFs0c { signed short :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFs0i { signed short :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFs0ll { signed short :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFs0s { signed short :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFu0c { signed short :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFu0i { signed short :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFu0ll { signed short :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0ll_BFu0s { signed short :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s { signed short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFs0c { signed short :0; unsigned char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFs0i { signed short :0; unsigned char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFs0ll { signed short :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFs0s { signed short :0; unsigned char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFu0c { signed short :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFu0i { signed short :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFu0ll { signed short :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0c_BFu0s_BFu0s { signed short :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i { signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c { signed short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFs0c { signed short :0; unsigned int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFs0i { signed short :0; unsigned int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFs0ll { signed short :0; unsigned int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFs0s { signed short :0; unsigned int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFu0c { signed short :0; unsigned int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFu0i { signed short :0; unsigned int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFu0ll { signed short :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0c_BFu0s { signed short :0; unsigned int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i { signed short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFs0c { signed short :0; unsigned int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFs0i { signed short :0; unsigned int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFs0ll { signed short :0; unsigned int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFs0s { signed short :0; unsigned int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFu0c { signed short :0; unsigned int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFu0i { signed short :0; unsigned int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFu0ll { signed short :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0i_BFu0s { signed short :0; unsigned int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll { signed short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFs0c { signed short :0; unsigned int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFs0i { signed short :0; unsigned int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFs0ll { signed short :0; unsigned int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFs0s { signed short :0; unsigned int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFu0c { signed short :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFu0i { signed short :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFu0ll { signed short :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0ll_BFu0s { signed short :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s { signed short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFs0c { signed short :0; unsigned int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFs0i { signed short :0; unsigned int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFs0ll { signed short :0; unsigned int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFs0s { signed short :0; unsigned int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFu0c { signed short :0; unsigned int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFu0i { signed short :0; unsigned int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFu0ll { signed short :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFs0s_BFu0s { signed short :0; unsigned int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c { signed short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFs0c { signed short :0; unsigned int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFs0i { signed short :0; unsigned int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFs0ll { signed short :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFs0s { signed short :0; unsigned int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFu0c { signed short :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFu0i { signed short :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFu0ll { signed short :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0c_BFu0s { signed short :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i { signed short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFs0c { signed short :0; unsigned int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFs0i { signed short :0; unsigned int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFs0ll { signed short :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFs0s { signed short :0; unsigned int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFu0c { signed short :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFu0i { signed short :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFu0ll { signed short :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0i_BFu0s { signed short :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll { signed short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFs0c { signed short :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFs0i { signed short :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFs0ll { signed short :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFs0s { signed short :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFu0c { signed short :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFu0i { signed short :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFu0ll { signed short :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0ll_BFu0s { signed short :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s { signed short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFs0c { signed short :0; unsigned int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFs0i { signed short :0; unsigned int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFs0ll { signed short :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFs0s { signed short :0; unsigned int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFu0c { signed short :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFu0i { signed short :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFu0ll { signed short :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0i_BFu0s_BFu0s { signed short :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll { signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c { signed short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFs0c { signed short :0; unsigned long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFs0i { signed short :0; unsigned long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFs0ll { signed short :0; unsigned long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFs0s { signed short :0; unsigned long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFu0c { signed short :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFu0i { signed short :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFu0ll { signed short :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0c_BFu0s { signed short :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i { signed short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFs0c { signed short :0; unsigned long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFs0i { signed short :0; unsigned long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFs0ll { signed short :0; unsigned long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFs0s { signed short :0; unsigned long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFu0c { signed short :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFu0i { signed short :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFu0ll { signed short :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0i_BFu0s { signed short :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll { signed short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFs0c { signed short :0; unsigned long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFs0i { signed short :0; unsigned long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFs0ll { signed short :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFs0s { signed short :0; unsigned long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFu0c { signed short :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFu0i { signed short :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFu0ll { signed short :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0ll_BFu0s { signed short :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s { signed short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFs0c { signed short :0; unsigned long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFs0i { signed short :0; unsigned long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFs0ll { signed short :0; unsigned long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFs0s { signed short :0; unsigned long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFu0c { signed short :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFu0i { signed short :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFu0ll { signed short :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFs0s_BFu0s { signed short :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c { signed short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFs0c { signed short :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFs0i { signed short :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFs0ll { signed short :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFs0s { signed short :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFu0c { signed short :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFu0i { signed short :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFu0ll { signed short :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0c_BFu0s { signed short :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i { signed short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFs0c { signed short :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFs0i { signed short :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFs0ll { signed short :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFs0s { signed short :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFu0c { signed short :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFu0i { signed short :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFu0ll { signed short :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0i_BFu0s { signed short :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll { signed short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFs0c { signed short :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFs0i { signed short :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFs0ll { signed short :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFs0s { signed short :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFu0c { signed short :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFu0i { signed short :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFu0ll { signed short :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0ll_BFu0s { signed short :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s { signed short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFs0c { signed short :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFs0i { signed short :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFs0ll { signed short :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFs0s { signed short :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFu0c { signed short :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFu0i { signed short :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFu0ll { signed short :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0ll_BFu0s_BFu0s { signed short :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s { signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c { signed short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFs0c { signed short :0; unsigned short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFs0i { signed short :0; unsigned short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFs0ll { signed short :0; unsigned short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFs0s { signed short :0; unsigned short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFu0c { signed short :0; unsigned short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFu0i { signed short :0; unsigned short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFu0ll { signed short :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0c_BFu0s { signed short :0; unsigned short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i { signed short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFs0c { signed short :0; unsigned short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFs0i { signed short :0; unsigned short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFs0ll { signed short :0; unsigned short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFs0s { signed short :0; unsigned short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFu0c { signed short :0; unsigned short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFu0i { signed short :0; unsigned short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFu0ll { signed short :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0i_BFu0s { signed short :0; unsigned short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll { signed short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFs0c { signed short :0; unsigned short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFs0i { signed short :0; unsigned short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFs0ll { signed short :0; unsigned short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFs0s { signed short :0; unsigned short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFu0c { signed short :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFu0i { signed short :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFu0ll { signed short :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0ll_BFu0s { signed short :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s { signed short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFs0c { signed short :0; unsigned short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFs0i { signed short :0; unsigned short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFs0ll { signed short :0; unsigned short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFs0s { signed short :0; unsigned short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFu0c { signed short :0; unsigned short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFu0i { signed short :0; unsigned short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFu0ll { signed short :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFs0s_BFu0s { signed short :0; unsigned short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c { signed short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFs0c { signed short :0; unsigned short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFs0i { signed short :0; unsigned short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFs0ll { signed short :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFs0s { signed short :0; unsigned short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFu0c { signed short :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFu0i { signed short :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFu0ll { signed short :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0c_BFu0s { signed short :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i { signed short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFs0c { signed short :0; unsigned short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFs0i { signed short :0; unsigned short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFs0ll { signed short :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFs0s { signed short :0; unsigned short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFu0c { signed short :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFu0i { signed short :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFu0ll { signed short :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0i_BFu0s { signed short :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll { signed short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFs0c { signed short :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFs0i { signed short :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFs0ll { signed short :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFs0s { signed short :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFu0c { signed short :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFu0i { signed short :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFu0ll { signed short :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0ll_BFu0s { signed short :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s { signed short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFs0c { signed short :0; unsigned short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFs0i { signed short :0; unsigned short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFs0ll { signed short :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFs0s { signed short :0; unsigned short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFu0c { signed short :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFu0i { signed short :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFu0ll { signed short :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFs0s_BFu0s_BFu0s_BFu0s { signed short :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c { unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c { unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c { unsigned char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFs0c { unsigned char :0; signed char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFs0i { unsigned char :0; signed char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFs0ll { unsigned char :0; signed char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFs0s { unsigned char :0; signed char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFu0c { unsigned char :0; signed char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFu0i { unsigned char :0; signed char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFu0ll { unsigned char :0; signed char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0c_BFu0s { unsigned char :0; signed char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i { unsigned char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFs0c { unsigned char :0; signed char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFs0i { unsigned char :0; signed char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFs0ll { unsigned char :0; signed char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFs0s { unsigned char :0; signed char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFu0c { unsigned char :0; signed char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFu0i { unsigned char :0; signed char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFu0ll { unsigned char :0; signed char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0i_BFu0s { unsigned char :0; signed char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll { unsigned char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFs0c { unsigned char :0; signed char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFs0i { unsigned char :0; signed char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFs0ll { unsigned char :0; signed char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFs0s { unsigned char :0; signed char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFu0c { unsigned char :0; signed char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFu0i { unsigned char :0; signed char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFu0ll { unsigned char :0; signed char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0ll_BFu0s { unsigned char :0; signed char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s { unsigned char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFs0c { unsigned char :0; signed char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFs0i { unsigned char :0; signed char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFs0ll { unsigned char :0; signed char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFs0s { unsigned char :0; signed char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFu0c { unsigned char :0; signed char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFu0i { unsigned char :0; signed char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFu0ll { unsigned char :0; signed char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFs0s_BFu0s { unsigned char :0; signed char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c { unsigned char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFs0c { unsigned char :0; signed char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFs0i { unsigned char :0; signed char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFs0ll { unsigned char :0; signed char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFs0s { unsigned char :0; signed char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFu0c { unsigned char :0; signed char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFu0i { unsigned char :0; signed char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFu0ll { unsigned char :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0c_BFu0s { unsigned char :0; signed char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i { unsigned char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFs0c { unsigned char :0; signed char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFs0i { unsigned char :0; signed char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFs0ll { unsigned char :0; signed char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFs0s { unsigned char :0; signed char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFu0c { unsigned char :0; signed char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFu0i { unsigned char :0; signed char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFu0ll { unsigned char :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0i_BFu0s { unsigned char :0; signed char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll { unsigned char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFs0c { unsigned char :0; signed char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFs0i { unsigned char :0; signed char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFs0ll { unsigned char :0; signed char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFs0s { unsigned char :0; signed char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFu0c { unsigned char :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFu0i { unsigned char :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFu0ll { unsigned char :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0ll_BFu0s { unsigned char :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s { unsigned char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFs0c { unsigned char :0; signed char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFs0i { unsigned char :0; signed char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFs0ll { unsigned char :0; signed char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFs0s { unsigned char :0; signed char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFu0c { unsigned char :0; signed char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFu0i { unsigned char :0; signed char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFu0ll { unsigned char :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0c_BFu0s_BFu0s { unsigned char :0; signed char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i { unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c { unsigned char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFs0c { unsigned char :0; signed int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFs0i { unsigned char :0; signed int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFs0ll { unsigned char :0; signed int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFs0s { unsigned char :0; signed int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFu0c { unsigned char :0; signed int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFu0i { unsigned char :0; signed int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFu0ll { unsigned char :0; signed int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0c_BFu0s { unsigned char :0; signed int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i { unsigned char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFs0c { unsigned char :0; signed int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFs0i { unsigned char :0; signed int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFs0ll { unsigned char :0; signed int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFs0s { unsigned char :0; signed int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFu0c { unsigned char :0; signed int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFu0i { unsigned char :0; signed int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFu0ll { unsigned char :0; signed int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0i_BFu0s { unsigned char :0; signed int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll { unsigned char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFs0c { unsigned char :0; signed int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFs0i { unsigned char :0; signed int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFs0ll { unsigned char :0; signed int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFs0s { unsigned char :0; signed int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFu0c { unsigned char :0; signed int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFu0i { unsigned char :0; signed int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFu0ll { unsigned char :0; signed int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0ll_BFu0s { unsigned char :0; signed int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s { unsigned char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFs0c { unsigned char :0; signed int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFs0i { unsigned char :0; signed int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFs0ll { unsigned char :0; signed int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFs0s { unsigned char :0; signed int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFu0c { unsigned char :0; signed int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFu0i { unsigned char :0; signed int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFu0ll { unsigned char :0; signed int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFs0s_BFu0s { unsigned char :0; signed int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c { unsigned char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFs0c { unsigned char :0; signed int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFs0i { unsigned char :0; signed int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFs0ll { unsigned char :0; signed int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFs0s { unsigned char :0; signed int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFu0c { unsigned char :0; signed int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFu0i { unsigned char :0; signed int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFu0ll { unsigned char :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0c_BFu0s { unsigned char :0; signed int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i { unsigned char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFs0c { unsigned char :0; signed int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFs0i { unsigned char :0; signed int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFs0ll { unsigned char :0; signed int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFs0s { unsigned char :0; signed int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFu0c { unsigned char :0; signed int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFu0i { unsigned char :0; signed int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFu0ll { unsigned char :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0i_BFu0s { unsigned char :0; signed int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll { unsigned char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFs0c { unsigned char :0; signed int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFs0i { unsigned char :0; signed int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFs0ll { unsigned char :0; signed int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFs0s { unsigned char :0; signed int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFu0c { unsigned char :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFu0i { unsigned char :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFu0ll { unsigned char :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0ll_BFu0s { unsigned char :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s { unsigned char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFs0c { unsigned char :0; signed int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFs0i { unsigned char :0; signed int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFs0ll { unsigned char :0; signed int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFs0s { unsigned char :0; signed int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFu0c { unsigned char :0; signed int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFu0i { unsigned char :0; signed int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFu0ll { unsigned char :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0i_BFu0s_BFu0s { unsigned char :0; signed int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll { unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c { unsigned char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFs0c { unsigned char :0; signed long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFs0i { unsigned char :0; signed long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFs0ll { unsigned char :0; signed long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFs0s { unsigned char :0; signed long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFu0c { unsigned char :0; signed long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFu0i { unsigned char :0; signed long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFu0ll { unsigned char :0; signed long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0c_BFu0s { unsigned char :0; signed long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i { unsigned char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFs0c { unsigned char :0; signed long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFs0i { unsigned char :0; signed long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFs0ll { unsigned char :0; signed long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFs0s { unsigned char :0; signed long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFu0c { unsigned char :0; signed long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFu0i { unsigned char :0; signed long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFu0ll { unsigned char :0; signed long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0i_BFu0s { unsigned char :0; signed long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll { unsigned char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFs0c { unsigned char :0; signed long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFs0i { unsigned char :0; signed long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFs0ll { unsigned char :0; signed long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFs0s { unsigned char :0; signed long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFu0c { unsigned char :0; signed long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFu0i { unsigned char :0; signed long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFu0ll { unsigned char :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0ll_BFu0s { unsigned char :0; signed long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s { unsigned char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFs0c { unsigned char :0; signed long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFs0i { unsigned char :0; signed long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFs0ll { unsigned char :0; signed long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFs0s { unsigned char :0; signed long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFu0c { unsigned char :0; signed long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFu0i { unsigned char :0; signed long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFu0ll { unsigned char :0; signed long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFs0s_BFu0s { unsigned char :0; signed long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c { unsigned char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFs0c { unsigned char :0; signed long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFs0i { unsigned char :0; signed long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFs0ll { unsigned char :0; signed long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFs0s { unsigned char :0; signed long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFu0c { unsigned char :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFu0i { unsigned char :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFu0ll { unsigned char :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0c_BFu0s { unsigned char :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i { unsigned char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFs0c { unsigned char :0; signed long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFs0i { unsigned char :0; signed long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFs0ll { unsigned char :0; signed long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFs0s { unsigned char :0; signed long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFu0c { unsigned char :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFu0i { unsigned char :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFu0ll { unsigned char :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0i_BFu0s { unsigned char :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll { unsigned char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFs0c { unsigned char :0; signed long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFs0i { unsigned char :0; signed long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFs0ll { unsigned char :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFs0s { unsigned char :0; signed long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFu0c { unsigned char :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFu0i { unsigned char :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFu0ll { unsigned char :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0ll_BFu0s { unsigned char :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s { unsigned char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFs0c { unsigned char :0; signed long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFs0i { unsigned char :0; signed long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFs0ll { unsigned char :0; signed long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFs0s { unsigned char :0; signed long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFu0c { unsigned char :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFu0i { unsigned char :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFu0ll { unsigned char :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0ll_BFu0s_BFu0s { unsigned char :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s { unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c { unsigned char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFs0c { unsigned char :0; signed short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFs0i { unsigned char :0; signed short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFs0ll { unsigned char :0; signed short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFs0s { unsigned char :0; signed short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFu0c { unsigned char :0; signed short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFu0i { unsigned char :0; signed short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFu0ll { unsigned char :0; signed short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0c_BFu0s { unsigned char :0; signed short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i { unsigned char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFs0c { unsigned char :0; signed short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFs0i { unsigned char :0; signed short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFs0ll { unsigned char :0; signed short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFs0s { unsigned char :0; signed short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFu0c { unsigned char :0; signed short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFu0i { unsigned char :0; signed short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFu0ll { unsigned char :0; signed short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0i_BFu0s { unsigned char :0; signed short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll { unsigned char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFs0c { unsigned char :0; signed short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFs0i { unsigned char :0; signed short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFs0ll { unsigned char :0; signed short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFs0s { unsigned char :0; signed short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFu0c { unsigned char :0; signed short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFu0i { unsigned char :0; signed short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFu0ll { unsigned char :0; signed short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0ll_BFu0s { unsigned char :0; signed short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s { unsigned char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFs0c { unsigned char :0; signed short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFs0i { unsigned char :0; signed short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFs0ll { unsigned char :0; signed short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFs0s { unsigned char :0; signed short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFu0c { unsigned char :0; signed short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFu0i { unsigned char :0; signed short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFu0ll { unsigned char :0; signed short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFs0s_BFu0s { unsigned char :0; signed short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c { unsigned char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFs0c { unsigned char :0; signed short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFs0i { unsigned char :0; signed short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFs0ll { unsigned char :0; signed short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFs0s { unsigned char :0; signed short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFu0c { unsigned char :0; signed short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFu0i { unsigned char :0; signed short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFu0ll { unsigned char :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0c_BFu0s { unsigned char :0; signed short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i { unsigned char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFs0c { unsigned char :0; signed short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFs0i { unsigned char :0; signed short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFs0ll { unsigned char :0; signed short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFs0s { unsigned char :0; signed short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFu0c { unsigned char :0; signed short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFu0i { unsigned char :0; signed short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFu0ll { unsigned char :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0i_BFu0s { unsigned char :0; signed short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll { unsigned char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFs0c { unsigned char :0; signed short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFs0i { unsigned char :0; signed short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFs0ll { unsigned char :0; signed short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFs0s { unsigned char :0; signed short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFu0c { unsigned char :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFu0i { unsigned char :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFu0ll { unsigned char :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0ll_BFu0s { unsigned char :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s { unsigned char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFs0c { unsigned char :0; signed short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFs0i { unsigned char :0; signed short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFs0ll { unsigned char :0; signed short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFs0s { unsigned char :0; signed short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFu0c { unsigned char :0; signed short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFu0i { unsigned char :0; signed short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFu0ll { unsigned char :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFs0s_BFu0s_BFu0s { unsigned char :0; signed short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c { unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c { unsigned char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFs0c { unsigned char :0; unsigned char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFs0i { unsigned char :0; unsigned char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFs0ll { unsigned char :0; unsigned char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFs0s { unsigned char :0; unsigned char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFu0c { unsigned char :0; unsigned char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFu0i { unsigned char :0; unsigned char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFu0ll { unsigned char :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0c_BFu0s { unsigned char :0; unsigned char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i { unsigned char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFs0c { unsigned char :0; unsigned char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFs0i { unsigned char :0; unsigned char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFs0ll { unsigned char :0; unsigned char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFs0s { unsigned char :0; unsigned char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFu0c { unsigned char :0; unsigned char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFu0i { unsigned char :0; unsigned char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFu0ll { unsigned char :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0i_BFu0s { unsigned char :0; unsigned char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll { unsigned char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFs0c { unsigned char :0; unsigned char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFs0i { unsigned char :0; unsigned char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFs0ll { unsigned char :0; unsigned char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFs0s { unsigned char :0; unsigned char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFu0c { unsigned char :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFu0i { unsigned char :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFu0ll { unsigned char :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0ll_BFu0s { unsigned char :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s { unsigned char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFs0c { unsigned char :0; unsigned char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFs0i { unsigned char :0; unsigned char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFs0ll { unsigned char :0; unsigned char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFs0s { unsigned char :0; unsigned char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFu0c { unsigned char :0; unsigned char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFu0i { unsigned char :0; unsigned char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFu0ll { unsigned char :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFs0s_BFu0s { unsigned char :0; unsigned char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c { unsigned char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFs0c { unsigned char :0; unsigned char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFs0i { unsigned char :0; unsigned char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFs0ll { unsigned char :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFs0s { unsigned char :0; unsigned char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFu0c { unsigned char :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFu0i { unsigned char :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFu0ll { unsigned char :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0c_BFu0s { unsigned char :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i { unsigned char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFs0c { unsigned char :0; unsigned char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFs0i { unsigned char :0; unsigned char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFs0ll { unsigned char :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFs0s { unsigned char :0; unsigned char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFu0c { unsigned char :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFu0i { unsigned char :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFu0ll { unsigned char :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0i_BFu0s { unsigned char :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll { unsigned char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFs0c { unsigned char :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFs0i { unsigned char :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFs0ll { unsigned char :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFs0s { unsigned char :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFu0c { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFu0i { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFu0ll { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0ll_BFu0s { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s { unsigned char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFs0c { unsigned char :0; unsigned char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFs0i { unsigned char :0; unsigned char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFs0ll { unsigned char :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFs0s { unsigned char :0; unsigned char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFu0c { unsigned char :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFu0i { unsigned char :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFu0ll { unsigned char :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu0s_BFu0s { unsigned char :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu15i { unsigned char :0; unsigned char :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu15ll { unsigned char :0; unsigned char :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu15s { unsigned char :0; unsigned char :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu16i { unsigned char :0; unsigned char :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu16ll { unsigned char :0; unsigned char :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu16s { unsigned char :0; unsigned char :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu17i { unsigned char :0; unsigned char :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu17ll { unsigned char :0; unsigned char :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu1c { unsigned char :0; unsigned char :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu1i { unsigned char :0; unsigned char :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu1ll { unsigned char :0; unsigned char :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu1s { unsigned char :0; unsigned char :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu31i { unsigned char :0; unsigned char :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu31ll { unsigned char :0; unsigned char :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu32i { unsigned char :0; unsigned char :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu32ll { unsigned char :0; unsigned char :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu33 { unsigned char :0; unsigned char :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu7c { unsigned char :0; unsigned char :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu7i { unsigned char :0; unsigned char :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu7ll { unsigned char :0; unsigned char :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu7s { unsigned char :0; unsigned char :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu8c { unsigned char :0; unsigned char :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu8i { unsigned char :0; unsigned char :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu8ll { unsigned char :0; unsigned char :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu8s { unsigned char :0; unsigned char :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu9i { unsigned char :0; unsigned char :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu9ll { unsigned char :0; unsigned char :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0c_BFu9s { unsigned char :0; unsigned char :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0c_C { unsigned char :0; unsigned char :0; char v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_D { unsigned char :0; unsigned char :0; double v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_F { unsigned char :0; unsigned char :0; float v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_I { unsigned char :0; unsigned char :0; int v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_Ip { unsigned char :0; unsigned char :0; int * v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_L { unsigned char :0; unsigned char :0; long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_S { unsigned char :0; unsigned char :0; short v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_Uc { unsigned char :0; unsigned char :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_Ui { unsigned char :0; unsigned char :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_Ul { unsigned char :0; unsigned char :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_Us { unsigned char :0; unsigned char :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0c_BFu0c_Vp { unsigned char :0; unsigned char :0; void * v1; };
struct __attribute__((packed)) aBFu0c_BFu0i { unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c { unsigned char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFs0c { unsigned char :0; unsigned int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFs0i { unsigned char :0; unsigned int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFs0ll { unsigned char :0; unsigned int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFs0s { unsigned char :0; unsigned int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFu0c { unsigned char :0; unsigned int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFu0i { unsigned char :0; unsigned int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFu0ll { unsigned char :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0c_BFu0s { unsigned char :0; unsigned int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i { unsigned char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFs0c { unsigned char :0; unsigned int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFs0i { unsigned char :0; unsigned int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFs0ll { unsigned char :0; unsigned int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFs0s { unsigned char :0; unsigned int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFu0c { unsigned char :0; unsigned int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFu0i { unsigned char :0; unsigned int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFu0ll { unsigned char :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0i_BFu0s { unsigned char :0; unsigned int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll { unsigned char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFs0c { unsigned char :0; unsigned int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFs0i { unsigned char :0; unsigned int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFs0ll { unsigned char :0; unsigned int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFs0s { unsigned char :0; unsigned int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFu0c { unsigned char :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFu0i { unsigned char :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFu0ll { unsigned char :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0ll_BFu0s { unsigned char :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s { unsigned char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFs0c { unsigned char :0; unsigned int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFs0i { unsigned char :0; unsigned int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFs0ll { unsigned char :0; unsigned int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFs0s { unsigned char :0; unsigned int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFu0c { unsigned char :0; unsigned int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFu0i { unsigned char :0; unsigned int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFu0ll { unsigned char :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFs0s_BFu0s { unsigned char :0; unsigned int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c { unsigned char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFs0c { unsigned char :0; unsigned int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFs0i { unsigned char :0; unsigned int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFs0ll { unsigned char :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFs0s { unsigned char :0; unsigned int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFu0c { unsigned char :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFu0i { unsigned char :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFu0ll { unsigned char :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0c_BFu0s { unsigned char :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i { unsigned char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFs0c { unsigned char :0; unsigned int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFs0i { unsigned char :0; unsigned int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFs0ll { unsigned char :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFs0s { unsigned char :0; unsigned int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFu0c { unsigned char :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFu0i { unsigned char :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFu0ll { unsigned char :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0i_BFu0s { unsigned char :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll { unsigned char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFs0c { unsigned char :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFs0i { unsigned char :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFs0ll { unsigned char :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFs0s { unsigned char :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFu0c { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFu0i { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFu0ll { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0ll_BFu0s { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s { unsigned char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFs0c { unsigned char :0; unsigned int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFs0i { unsigned char :0; unsigned int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFs0ll { unsigned char :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFs0s { unsigned char :0; unsigned int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFu0c { unsigned char :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFu0i { unsigned char :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFu0ll { unsigned char :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu0s_BFu0s { unsigned char :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu15i { unsigned char :0; unsigned int :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu15ll { unsigned char :0; unsigned int :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu15s { unsigned char :0; unsigned int :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu16i { unsigned char :0; unsigned int :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu16ll { unsigned char :0; unsigned int :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu16s { unsigned char :0; unsigned int :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu17i { unsigned char :0; unsigned int :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu17ll { unsigned char :0; unsigned int :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu1c { unsigned char :0; unsigned int :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu1i { unsigned char :0; unsigned int :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu1ll { unsigned char :0; unsigned int :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu1s { unsigned char :0; unsigned int :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu31i { unsigned char :0; unsigned int :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu31ll { unsigned char :0; unsigned int :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu32i { unsigned char :0; unsigned int :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu32ll { unsigned char :0; unsigned int :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu33 { unsigned char :0; unsigned int :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu7c { unsigned char :0; unsigned int :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu7i { unsigned char :0; unsigned int :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu7ll { unsigned char :0; unsigned int :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu7s { unsigned char :0; unsigned int :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu8c { unsigned char :0; unsigned int :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu8i { unsigned char :0; unsigned int :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu8ll { unsigned char :0; unsigned int :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu8s { unsigned char :0; unsigned int :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu9i { unsigned char :0; unsigned int :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu9ll { unsigned char :0; unsigned int :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0i_BFu9s { unsigned char :0; unsigned int :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0i_C { unsigned char :0; unsigned int :0; char v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_D { unsigned char :0; unsigned int :0; double v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_F { unsigned char :0; unsigned int :0; float v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_I { unsigned char :0; unsigned int :0; int v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_Ip { unsigned char :0; unsigned int :0; int * v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_L { unsigned char :0; unsigned int :0; long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_S { unsigned char :0; unsigned int :0; short v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_Uc { unsigned char :0; unsigned int :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_Ui { unsigned char :0; unsigned int :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_Ul { unsigned char :0; unsigned int :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_Us { unsigned char :0; unsigned int :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0c_BFu0i_Vp { unsigned char :0; unsigned int :0; void * v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll { unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c { unsigned char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFs0c { unsigned char :0; unsigned long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFs0i { unsigned char :0; unsigned long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFs0ll { unsigned char :0; unsigned long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFs0s { unsigned char :0; unsigned long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFu0c { unsigned char :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFu0i { unsigned char :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFu0ll { unsigned char :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0c_BFu0s { unsigned char :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i { unsigned char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFs0c { unsigned char :0; unsigned long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFs0i { unsigned char :0; unsigned long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFs0ll { unsigned char :0; unsigned long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFs0s { unsigned char :0; unsigned long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFu0c { unsigned char :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFu0i { unsigned char :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFu0ll { unsigned char :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0i_BFu0s { unsigned char :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll { unsigned char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFs0c { unsigned char :0; unsigned long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFs0i { unsigned char :0; unsigned long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFs0ll { unsigned char :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFs0s { unsigned char :0; unsigned long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFu0c { unsigned char :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFu0i { unsigned char :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFu0ll { unsigned char :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0ll_BFu0s { unsigned char :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s { unsigned char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFs0c { unsigned char :0; unsigned long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFs0i { unsigned char :0; unsigned long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFs0ll { unsigned char :0; unsigned long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFs0s { unsigned char :0; unsigned long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFu0c { unsigned char :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFu0i { unsigned char :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFu0ll { unsigned char :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFs0s_BFu0s { unsigned char :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c { unsigned char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFs0c { unsigned char :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFs0i { unsigned char :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFs0ll { unsigned char :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFs0s { unsigned char :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFu0c { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFu0i { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFu0ll { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0c_BFu0s { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i { unsigned char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFs0c { unsigned char :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFs0i { unsigned char :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFs0ll { unsigned char :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFs0s { unsigned char :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFu0c { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFu0i { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFu0ll { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0i_BFu0s { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll { unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFs0c { unsigned char :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFs0i { unsigned char :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFs0ll { unsigned char :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFs0s { unsigned char :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFu0c { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFu0i { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFu0ll { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0ll_BFu0s { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s { unsigned char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFs0c { unsigned char :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFs0i { unsigned char :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFs0ll { unsigned char :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFs0s { unsigned char :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFu0c { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFu0i { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFu0ll { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu0s_BFu0s { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu15i { unsigned char :0; unsigned long long :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu15ll { unsigned char :0; unsigned long long :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu15s { unsigned char :0; unsigned long long :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu16i { unsigned char :0; unsigned long long :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu16ll { unsigned char :0; unsigned long long :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu16s { unsigned char :0; unsigned long long :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu17i { unsigned char :0; unsigned long long :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu17ll { unsigned char :0; unsigned long long :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu1c { unsigned char :0; unsigned long long :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu1i { unsigned char :0; unsigned long long :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu1ll { unsigned char :0; unsigned long long :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu1s { unsigned char :0; unsigned long long :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu31i { unsigned char :0; unsigned long long :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu31ll { unsigned char :0; unsigned long long :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu32i { unsigned char :0; unsigned long long :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu32ll { unsigned char :0; unsigned long long :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu33 { unsigned char :0; unsigned long long :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu7c { unsigned char :0; unsigned long long :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu7i { unsigned char :0; unsigned long long :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu7ll { unsigned char :0; unsigned long long :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu7s { unsigned char :0; unsigned long long :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu8c { unsigned char :0; unsigned long long :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu8i { unsigned char :0; unsigned long long :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu8ll { unsigned char :0; unsigned long long :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu8s { unsigned char :0; unsigned long long :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu9i { unsigned char :0; unsigned long long :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu9ll { unsigned char :0; unsigned long long :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0ll_BFu9s { unsigned char :0; unsigned long long :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0ll_C { unsigned char :0; unsigned long long :0; char v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_D { unsigned char :0; unsigned long long :0; double v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_F { unsigned char :0; unsigned long long :0; float v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_I { unsigned char :0; unsigned long long :0; int v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_Ip { unsigned char :0; unsigned long long :0; int * v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_L { unsigned char :0; unsigned long long :0; long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_S { unsigned char :0; unsigned long long :0; short v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_Uc { unsigned char :0; unsigned long long :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_Ui { unsigned char :0; unsigned long long :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_Ul { unsigned char :0; unsigned long long :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_Us { unsigned char :0; unsigned long long :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0c_BFu0ll_Vp { unsigned char :0; unsigned long long :0; void * v1; };
struct __attribute__((packed)) aBFu0c_BFu0s { unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c { unsigned char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFs0c { unsigned char :0; unsigned short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFs0i { unsigned char :0; unsigned short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFs0ll { unsigned char :0; unsigned short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFs0s { unsigned char :0; unsigned short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFu0c { unsigned char :0; unsigned short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFu0i { unsigned char :0; unsigned short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFu0ll { unsigned char :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0c_BFu0s { unsigned char :0; unsigned short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i { unsigned char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFs0c { unsigned char :0; unsigned short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFs0i { unsigned char :0; unsigned short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFs0ll { unsigned char :0; unsigned short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFs0s { unsigned char :0; unsigned short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFu0c { unsigned char :0; unsigned short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFu0i { unsigned char :0; unsigned short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFu0ll { unsigned char :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0i_BFu0s { unsigned char :0; unsigned short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll { unsigned char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFs0c { unsigned char :0; unsigned short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFs0i { unsigned char :0; unsigned short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFs0ll { unsigned char :0; unsigned short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFs0s { unsigned char :0; unsigned short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFu0c { unsigned char :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFu0i { unsigned char :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFu0ll { unsigned char :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0ll_BFu0s { unsigned char :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s { unsigned char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFs0c { unsigned char :0; unsigned short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFs0i { unsigned char :0; unsigned short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFs0ll { unsigned char :0; unsigned short :0; signed short :0; signed long long :0; };


static void Test_aBFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c, aBFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c, aBFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFs0c, aBFs0c_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFs0i, aBFs0c_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFs0ll, aBFs0c_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFs0s, aBFs0c_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFu0c, aBFs0c_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFu0i, aBFs0c_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFu0ll, aBFs0c_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0c_BFu0s, aBFs0c_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i, aBFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFs0c, aBFs0c_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFs0i, aBFs0c_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFs0ll, aBFs0c_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFs0s, aBFs0c_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFu0c, aBFs0c_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFu0i, aBFs0c_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFu0ll, aBFs0c_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0i_BFu0s, aBFs0c_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll, aBFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFs0c, aBFs0c_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFs0i, aBFs0c_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFs0ll, aBFs0c_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFs0s, aBFs0c_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFu0c, aBFs0c_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFu0i, aBFs0c_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFu0ll, aBFs0c_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0ll_BFu0s, aBFs0c_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s, aBFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFs0c, aBFs0c_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFs0i, aBFs0c_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFs0ll, aBFs0c_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFs0s, aBFs0c_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFu0c, aBFs0c_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFu0i, aBFs0c_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFu0ll, aBFs0c_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFs0s_BFu0s, aBFs0c_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c, aBFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFs0c, aBFs0c_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFs0i, aBFs0c_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFs0ll, aBFs0c_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFs0s, aBFs0c_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFu0c, aBFs0c_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFu0i, aBFs0c_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFu0ll, aBFs0c_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0c_BFu0s, aBFs0c_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i, aBFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFs0c, aBFs0c_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFs0i, aBFs0c_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFs0ll, aBFs0c_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFs0s, aBFs0c_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFu0c, aBFs0c_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFu0i, aBFs0c_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFu0ll, aBFs0c_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0i_BFu0s, aBFs0c_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll, aBFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFs0c, aBFs0c_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFs0i, aBFs0c_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFs0ll, aBFs0c_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFs0s, aBFs0c_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFu0c, aBFs0c_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFu0i, aBFs0c_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFu0ll, aBFs0c_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0ll_BFu0s, aBFs0c_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s, aBFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFs0c, aBFs0c_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFs0i, aBFs0c_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFs0ll, aBFs0c_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFs0s, aBFs0c_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFu0c, aBFs0c_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFu0i, aBFs0c_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFu0ll, aBFs0c_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0c_BFu0s_BFu0s, aBFs0c_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i, aBFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c, aBFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFs0c, aBFs0c_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFs0i, aBFs0c_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFs0ll, aBFs0c_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFs0s, aBFs0c_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFu0c, aBFs0c_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFu0i, aBFs0c_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFu0ll, aBFs0c_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0c_BFu0s, aBFs0c_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i, aBFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFs0c, aBFs0c_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFs0i, aBFs0c_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFs0ll, aBFs0c_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFs0s, aBFs0c_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFu0c, aBFs0c_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFu0i, aBFs0c_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFu0ll, aBFs0c_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0i_BFu0s, aBFs0c_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll, aBFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFs0c, aBFs0c_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFs0i, aBFs0c_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFs0ll, aBFs0c_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFs0s, aBFs0c_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFu0c, aBFs0c_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFu0i, aBFs0c_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFu0ll, aBFs0c_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0ll_BFu0s, aBFs0c_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s, aBFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFs0c, aBFs0c_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFs0i, aBFs0c_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFs0ll, aBFs0c_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFs0s, aBFs0c_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFu0c, aBFs0c_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFu0i, aBFs0c_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFu0ll, aBFs0c_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFs0s_BFu0s, aBFs0c_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c, aBFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFs0c, aBFs0c_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFs0i, aBFs0c_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFs0ll, aBFs0c_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFs0s, aBFs0c_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFu0c, aBFs0c_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFu0i, aBFs0c_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFu0ll, aBFs0c_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0c_BFu0s, aBFs0c_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i, aBFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFs0c, aBFs0c_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFs0i, aBFs0c_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFs0ll, aBFs0c_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFs0s, aBFs0c_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFu0c, aBFs0c_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFu0i, aBFs0c_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFu0ll, aBFs0c_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0i_BFu0s, aBFs0c_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll, aBFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFs0c, aBFs0c_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFs0i, aBFs0c_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFs0ll, aBFs0c_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFs0s, aBFs0c_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFu0c, aBFs0c_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFu0i, aBFs0c_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFu0ll, aBFs0c_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0ll_BFu0s, aBFs0c_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s, aBFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFs0c, aBFs0c_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFs0i, aBFs0c_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFs0ll, aBFs0c_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFs0s, aBFs0c_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFu0c, aBFs0c_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFu0i, aBFs0c_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFu0ll, aBFs0c_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0i_BFu0s_BFu0s, aBFs0c_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll, aBFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c, aBFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFs0c, aBFs0c_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFs0i, aBFs0c_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFs0ll, aBFs0c_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFs0s, aBFs0c_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFu0c, aBFs0c_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFu0i, aBFs0c_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFu0ll, aBFs0c_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0c_BFu0s, aBFs0c_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i, aBFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFs0c, aBFs0c_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFs0i, aBFs0c_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFs0ll, aBFs0c_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFs0s, aBFs0c_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFu0c, aBFs0c_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFu0i, aBFs0c_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFu0ll, aBFs0c_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0i_BFu0s, aBFs0c_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll, aBFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFs0c, aBFs0c_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFs0i, aBFs0c_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFs0ll, aBFs0c_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFs0s, aBFs0c_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFu0c, aBFs0c_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFu0i, aBFs0c_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFu0ll, aBFs0c_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0ll_BFu0s, aBFs0c_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s, aBFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFs0c, aBFs0c_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFs0i, aBFs0c_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFs0ll, aBFs0c_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFs0s, aBFs0c_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFu0c, aBFs0c_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFu0i, aBFs0c_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFu0ll, aBFs0c_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFs0s_BFu0s, aBFs0c_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c, aBFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFs0c, aBFs0c_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFs0i, aBFs0c_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFs0ll, aBFs0c_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFs0s, aBFs0c_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFu0c, aBFs0c_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFu0i, aBFs0c_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFu0ll, aBFs0c_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0c_BFu0s, aBFs0c_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i, aBFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFs0c, aBFs0c_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFs0i, aBFs0c_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFs0ll, aBFs0c_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFs0s, aBFs0c_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFu0c, aBFs0c_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFu0i, aBFs0c_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFu0ll, aBFs0c_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0i_BFu0s, aBFs0c_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll, aBFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFs0c, aBFs0c_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFs0i, aBFs0c_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFs0ll, aBFs0c_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFs0s, aBFs0c_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFu0c, aBFs0c_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFu0i, aBFs0c_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFu0ll, aBFs0c_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0ll_BFu0s, aBFs0c_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s, aBFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFs0c, aBFs0c_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFs0i, aBFs0c_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFs0ll, aBFs0c_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFs0s, aBFs0c_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFu0c, aBFs0c_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFu0i, aBFs0c_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFu0ll, aBFs0c_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0ll_BFu0s_BFu0s, aBFs0c_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s, aBFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c, aBFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFs0c, aBFs0c_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFs0i, aBFs0c_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFs0ll, aBFs0c_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFs0s, aBFs0c_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFu0c, aBFs0c_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFu0i, aBFs0c_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFu0ll, aBFs0c_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0c_BFu0s, aBFs0c_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i, aBFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFs0c, aBFs0c_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFs0i, aBFs0c_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFs0ll, aBFs0c_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFs0s, aBFs0c_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFu0c, aBFs0c_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFu0i, aBFs0c_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFu0ll, aBFs0c_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0i_BFu0s, aBFs0c_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll, aBFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFs0c, aBFs0c_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFs0i, aBFs0c_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFs0ll, aBFs0c_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFs0s, aBFs0c_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFu0c, aBFs0c_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFu0i, aBFs0c_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFu0ll, aBFs0c_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0ll_BFu0s, aBFs0c_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s, aBFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFs0c, aBFs0c_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFs0i, aBFs0c_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFs0ll, aBFs0c_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFs0s, aBFs0c_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFu0c, aBFs0c_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFu0i, aBFs0c_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFu0ll, aBFs0c_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFs0s_BFu0s, aBFs0c_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c, aBFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFs0c, aBFs0c_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFs0i, aBFs0c_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFs0ll, aBFs0c_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFs0s, aBFs0c_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFu0c, aBFs0c_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFu0i, aBFs0c_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFu0ll, aBFs0c_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0c_BFu0s, aBFs0c_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i, aBFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFs0c, aBFs0c_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFs0i, aBFs0c_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFs0ll, aBFs0c_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFs0s, aBFs0c_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFu0c, aBFs0c_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFu0i, aBFs0c_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFu0ll, aBFs0c_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0i_BFu0s, aBFs0c_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll, aBFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFs0c, aBFs0c_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFs0i, aBFs0c_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFs0ll, aBFs0c_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFs0s, aBFs0c_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFu0c, aBFs0c_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFu0i, aBFs0c_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFu0ll, aBFs0c_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0ll_BFu0s, aBFs0c_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s, aBFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFs0c, aBFs0c_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFs0i, aBFs0c_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFs0ll, aBFs0c_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFs0s, aBFs0c_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFu0c, aBFs0c_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFu0i, aBFs0c_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFu0ll, aBFs0c_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFs0s_BFu0s_BFu0s, aBFs0c_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c, aBFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c, aBFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFs0c, aBFs0c_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFs0i, aBFs0c_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFs0ll, aBFs0c_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFs0s, aBFs0c_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFu0c, aBFs0c_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFu0i, aBFs0c_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFu0ll, aBFs0c_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0c_BFu0s, aBFs0c_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i, aBFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFs0c, aBFs0c_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFs0i, aBFs0c_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFs0ll, aBFs0c_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFs0s, aBFs0c_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFu0c, aBFs0c_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFu0i, aBFs0c_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFu0ll, aBFs0c_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0i_BFu0s, aBFs0c_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll, aBFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFs0c, aBFs0c_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFs0i, aBFs0c_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFs0ll, aBFs0c_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFs0s, aBFs0c_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFu0c, aBFs0c_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFu0i, aBFs0c_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFu0ll, aBFs0c_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0ll_BFu0s, aBFs0c_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s, aBFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFs0c, aBFs0c_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFs0i, aBFs0c_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFs0ll, aBFs0c_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFs0s, aBFs0c_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFu0c, aBFs0c_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFu0i, aBFs0c_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFu0ll, aBFs0c_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFs0s_BFu0s, aBFs0c_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c, aBFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFs0c, aBFs0c_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFs0i, aBFs0c_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFs0ll, aBFs0c_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFs0s, aBFs0c_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFu0c, aBFs0c_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFu0i, aBFs0c_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFu0ll, aBFs0c_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0c_BFu0s, aBFs0c_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i, aBFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFs0c, aBFs0c_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFs0i, aBFs0c_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFs0ll, aBFs0c_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFs0s, aBFs0c_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFu0c, aBFs0c_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFu0i, aBFs0c_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFu0ll, aBFs0c_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0i_BFu0s, aBFs0c_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll, aBFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFs0c, aBFs0c_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFs0i, aBFs0c_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFs0ll, aBFs0c_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFs0s, aBFs0c_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFu0c, aBFs0c_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFu0i, aBFs0c_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFu0ll, aBFs0c_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0ll_BFu0s, aBFs0c_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s, aBFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFs0c, aBFs0c_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFs0i, aBFs0c_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFs0ll, aBFs0c_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFs0s, aBFs0c_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFu0c, aBFs0c_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFu0i, aBFs0c_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFu0ll, aBFs0c_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0c_BFu0s_BFu0s, aBFs0c_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i, aBFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c, aBFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFs0c, aBFs0c_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFs0i, aBFs0c_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFs0ll, aBFs0c_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFs0s, aBFs0c_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFu0c, aBFs0c_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFu0i, aBFs0c_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFu0ll, aBFs0c_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0c_BFu0s, aBFs0c_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i, aBFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFs0c, aBFs0c_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFs0i, aBFs0c_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFs0ll, aBFs0c_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFs0s, aBFs0c_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFu0c, aBFs0c_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFu0i, aBFs0c_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFu0ll, aBFs0c_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0i_BFu0s, aBFs0c_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll, aBFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFs0c, aBFs0c_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFs0i, aBFs0c_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFs0ll, aBFs0c_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFs0s, aBFs0c_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFu0c, aBFs0c_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFu0i, aBFs0c_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFu0ll, aBFs0c_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0ll_BFu0s, aBFs0c_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s, aBFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFs0c, aBFs0c_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFs0i, aBFs0c_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFs0ll, aBFs0c_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFs0s, aBFs0c_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFu0c, aBFs0c_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFu0i, aBFs0c_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFu0ll, aBFs0c_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFs0s_BFu0s, aBFs0c_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c, aBFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFs0c, aBFs0c_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFs0i, aBFs0c_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFs0ll, aBFs0c_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFs0s, aBFs0c_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFu0c, aBFs0c_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFu0i, aBFs0c_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFu0ll, aBFs0c_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0c_BFu0s, aBFs0c_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i, aBFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFs0c, aBFs0c_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFs0i, aBFs0c_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFs0ll, aBFs0c_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFs0s, aBFs0c_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFu0c, aBFs0c_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFu0i, aBFs0c_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFu0ll, aBFs0c_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0i_BFu0s, aBFs0c_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll, aBFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFs0c, aBFs0c_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFs0i, aBFs0c_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFs0ll, aBFs0c_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFs0s, aBFs0c_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFu0c, aBFs0c_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFu0i, aBFs0c_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFu0ll, aBFs0c_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0ll_BFu0s, aBFs0c_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s, aBFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFs0c, aBFs0c_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFs0i, aBFs0c_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFs0ll, aBFs0c_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFs0s, aBFs0c_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFu0c, aBFs0c_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFu0i, aBFs0c_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFu0ll, aBFs0c_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0i_BFu0s_BFu0s, aBFs0c_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll, aBFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c, aBFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFs0c, aBFs0c_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFs0i, aBFs0c_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFs0ll, aBFs0c_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFs0s, aBFs0c_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFu0c, aBFs0c_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFu0i, aBFs0c_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFu0ll, aBFs0c_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0c_BFu0s, aBFs0c_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i, aBFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFs0c, aBFs0c_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFs0i, aBFs0c_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFs0ll, aBFs0c_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFs0s, aBFs0c_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFu0c, aBFs0c_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFu0i, aBFs0c_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFu0ll, aBFs0c_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0i_BFu0s, aBFs0c_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll, aBFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFs0c, aBFs0c_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFs0i, aBFs0c_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFs0ll, aBFs0c_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFs0s, aBFs0c_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFu0c, aBFs0c_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFu0i, aBFs0c_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFu0ll, aBFs0c_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0ll_BFu0s, aBFs0c_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s, aBFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFs0c, aBFs0c_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFs0i, aBFs0c_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFs0ll, aBFs0c_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFs0s, aBFs0c_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFu0c, aBFs0c_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFu0i, aBFs0c_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFu0ll, aBFs0c_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFs0s_BFu0s, aBFs0c_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c, aBFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFs0c, aBFs0c_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFs0i, aBFs0c_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFs0ll, aBFs0c_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFs0s, aBFs0c_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFu0c, aBFs0c_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFu0i, aBFs0c_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFu0ll, aBFs0c_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0c_BFu0s, aBFs0c_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i, aBFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFs0c, aBFs0c_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFs0i, aBFs0c_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFs0ll, aBFs0c_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFs0s, aBFs0c_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFu0c, aBFs0c_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFu0i, aBFs0c_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFu0ll, aBFs0c_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0i_BFu0s, aBFs0c_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll, aBFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFs0c, aBFs0c_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFs0i, aBFs0c_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFs0ll, aBFs0c_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFs0s, aBFs0c_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFu0c, aBFs0c_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFu0i, aBFs0c_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFu0ll, aBFs0c_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0ll_BFu0s, aBFs0c_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s, aBFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFs0c, aBFs0c_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFs0i, aBFs0c_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFs0ll, aBFs0c_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFs0s, aBFs0c_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFu0c, aBFs0c_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFu0i, aBFs0c_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFu0ll, aBFs0c_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0ll_BFu0s_BFu0s, aBFs0c_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s, aBFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c, aBFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFs0c, aBFs0c_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFs0i, aBFs0c_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFs0ll, aBFs0c_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFs0s, aBFs0c_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFu0c, aBFs0c_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFu0i, aBFs0c_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFu0ll, aBFs0c_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0c_BFu0s, aBFs0c_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i, aBFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFs0c, aBFs0c_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFs0i, aBFs0c_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFs0ll, aBFs0c_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFs0s, aBFs0c_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFu0c, aBFs0c_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFu0i, aBFs0c_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFu0ll, aBFs0c_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0i_BFu0s, aBFs0c_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll, aBFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFs0c, aBFs0c_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFs0i, aBFs0c_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFs0ll, aBFs0c_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFs0s, aBFs0c_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFu0c, aBFs0c_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFu0i, aBFs0c_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFu0ll, aBFs0c_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0ll_BFu0s, aBFs0c_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s, aBFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFs0c, aBFs0c_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFs0i, aBFs0c_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFs0ll, aBFs0c_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFs0s, aBFs0c_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFu0c, aBFs0c_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFu0i, aBFs0c_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFu0ll, aBFs0c_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFs0s_BFu0s, aBFs0c_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c, aBFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFs0c, aBFs0c_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFs0i, aBFs0c_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFs0ll, aBFs0c_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFs0s, aBFs0c_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFu0c, aBFs0c_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFu0i, aBFs0c_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFu0ll, aBFs0c_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0c_BFu0s, aBFs0c_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i, aBFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFs0c, aBFs0c_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFs0i, aBFs0c_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFs0ll, aBFs0c_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFs0s, aBFs0c_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFu0c, aBFs0c_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFu0i, aBFs0c_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFu0ll, aBFs0c_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0i_BFu0s, aBFs0c_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll, aBFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFs0c, aBFs0c_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFs0i, aBFs0c_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFs0ll, aBFs0c_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFs0s, aBFs0c_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFu0c, aBFs0c_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFu0i, aBFs0c_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFu0ll, aBFs0c_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0ll_BFu0s, aBFs0c_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s, aBFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFs0c, aBFs0c_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFs0i, aBFs0c_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFs0ll, aBFs0c_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFs0s, aBFs0c_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFu0c, aBFs0c_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFu0i, aBFs0c_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFu0ll, aBFs0c_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0c_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0c_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0c_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0c_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0c_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0c_BFu0s_BFu0s_BFu0s, aBFs0c_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c, aBFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c, aBFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFs0c, aBFs0i_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFs0i, aBFs0i_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFs0ll, aBFs0i_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFs0s, aBFs0i_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFu0c, aBFs0i_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFu0i, aBFs0i_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFu0ll, aBFs0i_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0c_BFu0s, aBFs0i_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i, aBFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFs0c, aBFs0i_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFs0i, aBFs0i_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFs0ll, aBFs0i_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFs0s, aBFs0i_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFu0c, aBFs0i_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFu0i, aBFs0i_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFu0ll, aBFs0i_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0i_BFu0s, aBFs0i_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll, aBFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFs0c, aBFs0i_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFs0i, aBFs0i_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFs0ll, aBFs0i_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFs0s, aBFs0i_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFu0c, aBFs0i_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFu0i, aBFs0i_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFu0ll, aBFs0i_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0ll_BFu0s, aBFs0i_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s, aBFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFs0c, aBFs0i_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFs0i, aBFs0i_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFs0ll, aBFs0i_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFs0s, aBFs0i_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFu0c, aBFs0i_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFu0i, aBFs0i_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFu0ll, aBFs0i_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFs0s_BFu0s, aBFs0i_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c, aBFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFs0c, aBFs0i_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFs0i, aBFs0i_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFs0ll, aBFs0i_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFs0s, aBFs0i_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFu0c, aBFs0i_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFu0i, aBFs0i_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFu0ll, aBFs0i_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0c_BFu0s, aBFs0i_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i, aBFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFs0c, aBFs0i_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFs0i, aBFs0i_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFs0ll, aBFs0i_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFs0s, aBFs0i_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFu0c, aBFs0i_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFu0i, aBFs0i_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFu0ll, aBFs0i_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0i_BFu0s, aBFs0i_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll, aBFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFs0c, aBFs0i_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFs0i, aBFs0i_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFs0ll, aBFs0i_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFs0s, aBFs0i_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFu0c, aBFs0i_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFu0i, aBFs0i_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFu0ll, aBFs0i_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0ll_BFu0s, aBFs0i_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s, aBFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFs0c, aBFs0i_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFs0i, aBFs0i_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFs0ll, aBFs0i_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFs0s, aBFs0i_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFu0c, aBFs0i_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFu0i, aBFs0i_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFu0ll, aBFs0i_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0c_BFu0s_BFu0s, aBFs0i_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i, aBFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c, aBFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFs0c, aBFs0i_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFs0i, aBFs0i_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFs0ll, aBFs0i_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFs0s, aBFs0i_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFu0c, aBFs0i_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFu0i, aBFs0i_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFu0ll, aBFs0i_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0c_BFu0s, aBFs0i_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i, aBFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFs0c, aBFs0i_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFs0i, aBFs0i_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFs0ll, aBFs0i_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFs0s, aBFs0i_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFu0c, aBFs0i_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFu0i, aBFs0i_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFu0ll, aBFs0i_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0i_BFu0s, aBFs0i_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll, aBFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFs0c, aBFs0i_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFs0i, aBFs0i_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFs0ll, aBFs0i_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFs0s, aBFs0i_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFu0c, aBFs0i_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFu0i, aBFs0i_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFu0ll, aBFs0i_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0ll_BFu0s, aBFs0i_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s, aBFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFs0c, aBFs0i_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFs0i, aBFs0i_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFs0ll, aBFs0i_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFs0s, aBFs0i_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFu0c, aBFs0i_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFu0i, aBFs0i_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFu0ll, aBFs0i_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFs0s_BFu0s, aBFs0i_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c, aBFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFs0c, aBFs0i_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFs0i, aBFs0i_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFs0ll, aBFs0i_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFs0s, aBFs0i_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFu0c, aBFs0i_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFu0i, aBFs0i_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFu0ll, aBFs0i_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0c_BFu0s, aBFs0i_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i, aBFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFs0c, aBFs0i_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFs0i, aBFs0i_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFs0ll, aBFs0i_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFs0s, aBFs0i_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFu0c, aBFs0i_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFu0i, aBFs0i_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFu0ll, aBFs0i_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0i_BFu0s, aBFs0i_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll, aBFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFs0c, aBFs0i_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFs0i, aBFs0i_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFs0ll, aBFs0i_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFs0s, aBFs0i_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFu0c, aBFs0i_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFu0i, aBFs0i_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFu0ll, aBFs0i_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0ll_BFu0s, aBFs0i_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s, aBFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFs0c, aBFs0i_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFs0i, aBFs0i_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFs0ll, aBFs0i_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFs0s, aBFs0i_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFu0c, aBFs0i_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFu0i, aBFs0i_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFu0ll, aBFs0i_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0i_BFu0s_BFu0s, aBFs0i_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll, aBFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c, aBFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFs0c, aBFs0i_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFs0i, aBFs0i_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFs0ll, aBFs0i_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFs0s, aBFs0i_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFu0c, aBFs0i_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFu0i, aBFs0i_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFu0ll, aBFs0i_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0c_BFu0s, aBFs0i_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i, aBFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFs0c, aBFs0i_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFs0i, aBFs0i_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFs0ll, aBFs0i_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFs0s, aBFs0i_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFu0c, aBFs0i_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFu0i, aBFs0i_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFu0ll, aBFs0i_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0i_BFu0s, aBFs0i_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll, aBFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFs0c, aBFs0i_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFs0i, aBFs0i_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFs0ll, aBFs0i_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFs0s, aBFs0i_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFu0c, aBFs0i_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFu0i, aBFs0i_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFu0ll, aBFs0i_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0ll_BFu0s, aBFs0i_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s, aBFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFs0c, aBFs0i_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFs0i, aBFs0i_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFs0ll, aBFs0i_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFs0s, aBFs0i_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFu0c, aBFs0i_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFu0i, aBFs0i_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFu0ll, aBFs0i_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFs0s_BFu0s, aBFs0i_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c, aBFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFs0c, aBFs0i_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFs0i, aBFs0i_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFs0ll, aBFs0i_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFs0s, aBFs0i_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFu0c, aBFs0i_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFu0i, aBFs0i_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFu0ll, aBFs0i_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0c_BFu0s, aBFs0i_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i, aBFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFs0c, aBFs0i_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFs0i, aBFs0i_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFs0ll, aBFs0i_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFs0s, aBFs0i_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFu0c, aBFs0i_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFu0i, aBFs0i_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFu0ll, aBFs0i_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0i_BFu0s, aBFs0i_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll, aBFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFs0c, aBFs0i_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFs0i, aBFs0i_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFs0ll, aBFs0i_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFs0s, aBFs0i_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFu0c, aBFs0i_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFu0i, aBFs0i_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFu0ll, aBFs0i_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0ll_BFu0s, aBFs0i_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s, aBFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFs0c, aBFs0i_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFs0i, aBFs0i_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFs0ll, aBFs0i_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFs0s, aBFs0i_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFu0c, aBFs0i_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFu0i, aBFs0i_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFu0ll, aBFs0i_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0ll_BFu0s_BFu0s, aBFs0i_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s, aBFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c, aBFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFs0c, aBFs0i_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFs0i, aBFs0i_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFs0ll, aBFs0i_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFs0s, aBFs0i_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFu0c, aBFs0i_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFu0i, aBFs0i_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFu0ll, aBFs0i_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0c_BFu0s, aBFs0i_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i, aBFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFs0c, aBFs0i_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFs0i, aBFs0i_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFs0ll, aBFs0i_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFs0s, aBFs0i_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFu0c, aBFs0i_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFu0i, aBFs0i_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFu0ll, aBFs0i_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0i_BFu0s, aBFs0i_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll, aBFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFs0c, aBFs0i_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFs0i, aBFs0i_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFs0ll, aBFs0i_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFs0s, aBFs0i_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFu0c, aBFs0i_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFu0i, aBFs0i_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFu0ll, aBFs0i_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0ll_BFu0s, aBFs0i_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s, aBFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFs0c, aBFs0i_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFs0i, aBFs0i_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFs0ll, aBFs0i_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFs0s, aBFs0i_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFu0c, aBFs0i_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFu0i, aBFs0i_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFu0ll, aBFs0i_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFs0s_BFu0s, aBFs0i_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c, aBFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFs0c, aBFs0i_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFs0i, aBFs0i_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFs0ll, aBFs0i_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFs0s, aBFs0i_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFu0c, aBFs0i_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFu0i, aBFs0i_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFu0ll, aBFs0i_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0c_BFu0s, aBFs0i_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i, aBFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFs0c, aBFs0i_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFs0i, aBFs0i_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFs0ll, aBFs0i_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFs0s, aBFs0i_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFu0c, aBFs0i_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFu0i, aBFs0i_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFu0ll, aBFs0i_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0i_BFu0s, aBFs0i_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll, aBFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFs0c, aBFs0i_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFs0i, aBFs0i_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFs0ll, aBFs0i_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFs0s, aBFs0i_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFu0c, aBFs0i_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFu0i, aBFs0i_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFu0ll, aBFs0i_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0ll_BFu0s, aBFs0i_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s, aBFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFs0c, aBFs0i_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFs0i, aBFs0i_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFs0ll, aBFs0i_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFs0s, aBFs0i_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFu0c, aBFs0i_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFu0i, aBFs0i_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFu0ll, aBFs0i_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFs0s_BFu0s_BFu0s, aBFs0i_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c, aBFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c, aBFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFs0c, aBFs0i_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFs0i, aBFs0i_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFs0ll, aBFs0i_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFs0s, aBFs0i_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFu0c, aBFs0i_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFu0i, aBFs0i_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFu0ll, aBFs0i_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0c_BFu0s, aBFs0i_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i, aBFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFs0c, aBFs0i_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFs0i, aBFs0i_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFs0ll, aBFs0i_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFs0s, aBFs0i_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFu0c, aBFs0i_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFu0i, aBFs0i_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFu0ll, aBFs0i_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0i_BFu0s, aBFs0i_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll, aBFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFs0c, aBFs0i_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFs0i, aBFs0i_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFs0ll, aBFs0i_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFs0s, aBFs0i_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFu0c, aBFs0i_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFu0i, aBFs0i_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFu0ll, aBFs0i_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0ll_BFu0s, aBFs0i_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s, aBFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFs0c, aBFs0i_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFs0i, aBFs0i_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFs0ll, aBFs0i_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFs0s, aBFs0i_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFu0c, aBFs0i_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFu0i, aBFs0i_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFu0ll, aBFs0i_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFs0s_BFu0s, aBFs0i_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c, aBFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFs0c, aBFs0i_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFs0i, aBFs0i_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFs0ll, aBFs0i_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFs0s, aBFs0i_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFu0c, aBFs0i_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFu0i, aBFs0i_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFu0ll, aBFs0i_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0c_BFu0s, aBFs0i_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i, aBFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFs0c, aBFs0i_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFs0i, aBFs0i_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFs0ll, aBFs0i_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFs0s, aBFs0i_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFu0c, aBFs0i_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFu0i, aBFs0i_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFu0ll, aBFs0i_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0i_BFu0s, aBFs0i_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll, aBFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFs0c, aBFs0i_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFs0i, aBFs0i_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFs0ll, aBFs0i_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFs0s, aBFs0i_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFu0c, aBFs0i_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFu0i, aBFs0i_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFu0ll, aBFs0i_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0ll_BFu0s, aBFs0i_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s, aBFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFs0c, aBFs0i_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFs0i, aBFs0i_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFs0ll, aBFs0i_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFs0s, aBFs0i_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFu0c, aBFs0i_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFu0i, aBFs0i_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFu0ll, aBFs0i_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0c_BFu0s_BFu0s, aBFs0i_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i, aBFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c, aBFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFs0c, aBFs0i_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFs0i, aBFs0i_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFs0ll, aBFs0i_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFs0s, aBFs0i_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFu0c, aBFs0i_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFu0i, aBFs0i_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFu0ll, aBFs0i_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0c_BFu0s, aBFs0i_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i, aBFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFs0c, aBFs0i_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFs0i, aBFs0i_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFs0ll, aBFs0i_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFs0s, aBFs0i_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFu0c, aBFs0i_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFu0i, aBFs0i_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFu0ll, aBFs0i_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0i_BFu0s, aBFs0i_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll, aBFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFs0c, aBFs0i_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFs0i, aBFs0i_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFs0ll, aBFs0i_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFs0s, aBFs0i_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFu0c, aBFs0i_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFu0i, aBFs0i_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFu0ll, aBFs0i_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0ll_BFu0s, aBFs0i_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s, aBFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFs0c, aBFs0i_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFs0i, aBFs0i_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFs0ll, aBFs0i_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFs0s, aBFs0i_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFu0c, aBFs0i_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFu0i, aBFs0i_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFu0ll, aBFs0i_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFs0s_BFu0s, aBFs0i_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c, aBFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFs0c, aBFs0i_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFs0i, aBFs0i_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFs0ll, aBFs0i_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFs0s, aBFs0i_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFu0c, aBFs0i_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFu0i, aBFs0i_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFu0ll, aBFs0i_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0c_BFu0s, aBFs0i_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i, aBFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFs0c, aBFs0i_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFs0i, aBFs0i_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFs0ll, aBFs0i_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFs0s, aBFs0i_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFu0c, aBFs0i_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFu0i, aBFs0i_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFu0ll, aBFs0i_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0i_BFu0s, aBFs0i_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll, aBFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFs0c, aBFs0i_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFs0i, aBFs0i_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFs0ll, aBFs0i_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFs0s, aBFs0i_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFu0c, aBFs0i_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFu0i, aBFs0i_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFu0ll, aBFs0i_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0ll_BFu0s, aBFs0i_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s, aBFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFs0c, aBFs0i_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFs0i, aBFs0i_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFs0ll, aBFs0i_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFs0s, aBFs0i_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFu0c, aBFs0i_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFu0i, aBFs0i_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFu0ll, aBFs0i_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0i_BFu0s_BFu0s, aBFs0i_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll, aBFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c, aBFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFs0c, aBFs0i_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFs0i, aBFs0i_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFs0ll, aBFs0i_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFs0s, aBFs0i_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFu0c, aBFs0i_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFu0i, aBFs0i_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFu0ll, aBFs0i_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0c_BFu0s, aBFs0i_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i, aBFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFs0c, aBFs0i_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFs0i, aBFs0i_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFs0ll, aBFs0i_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFs0s, aBFs0i_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFu0c, aBFs0i_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFu0i, aBFs0i_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFu0ll, aBFs0i_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0i_BFu0s, aBFs0i_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll, aBFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFs0c, aBFs0i_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFs0i, aBFs0i_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFs0ll, aBFs0i_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFs0s, aBFs0i_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFu0c, aBFs0i_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFu0i, aBFs0i_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFu0ll, aBFs0i_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0ll_BFu0s, aBFs0i_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s, aBFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFs0c, aBFs0i_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFs0i, aBFs0i_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFs0ll, aBFs0i_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFs0s, aBFs0i_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFu0c, aBFs0i_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFu0i, aBFs0i_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFu0ll, aBFs0i_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFs0s_BFu0s, aBFs0i_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c, aBFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFs0c, aBFs0i_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFs0i, aBFs0i_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFs0ll, aBFs0i_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFs0s, aBFs0i_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFu0c, aBFs0i_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFu0i, aBFs0i_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFu0ll, aBFs0i_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0c_BFu0s, aBFs0i_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i, aBFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFs0c, aBFs0i_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFs0i, aBFs0i_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFs0ll, aBFs0i_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFs0s, aBFs0i_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFu0c, aBFs0i_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFu0i, aBFs0i_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFu0ll, aBFs0i_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0i_BFu0s, aBFs0i_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll, aBFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFs0c, aBFs0i_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFs0i, aBFs0i_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFs0ll, aBFs0i_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFs0s, aBFs0i_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFu0c, aBFs0i_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFu0i, aBFs0i_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFu0ll, aBFs0i_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0ll_BFu0s, aBFs0i_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s, aBFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFs0c, aBFs0i_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFs0i, aBFs0i_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFs0ll, aBFs0i_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFs0s, aBFs0i_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFu0c, aBFs0i_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFu0i, aBFs0i_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFu0ll, aBFs0i_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0ll_BFu0s_BFu0s, aBFs0i_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s, aBFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c, aBFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFs0c, aBFs0i_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFs0i, aBFs0i_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFs0ll, aBFs0i_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFs0s, aBFs0i_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFu0c, aBFs0i_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFu0i, aBFs0i_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFu0ll, aBFs0i_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0c_BFu0s, aBFs0i_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i, aBFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFs0c, aBFs0i_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFs0i, aBFs0i_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFs0ll, aBFs0i_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFs0s, aBFs0i_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFu0c, aBFs0i_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFu0i, aBFs0i_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFu0ll, aBFs0i_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0i_BFu0s, aBFs0i_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll, aBFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFs0c, aBFs0i_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFs0i, aBFs0i_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFs0ll, aBFs0i_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFs0s, aBFs0i_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFu0c, aBFs0i_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFu0i, aBFs0i_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFu0ll, aBFs0i_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0ll_BFu0s, aBFs0i_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s, aBFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFs0c, aBFs0i_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFs0i, aBFs0i_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFs0ll, aBFs0i_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFs0s, aBFs0i_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFu0c, aBFs0i_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFu0i, aBFs0i_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFu0ll, aBFs0i_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFs0s_BFu0s, aBFs0i_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c, aBFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFs0c, aBFs0i_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFs0i, aBFs0i_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFs0ll, aBFs0i_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFs0s, aBFs0i_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFu0c, aBFs0i_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFu0i, aBFs0i_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFu0ll, aBFs0i_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0c_BFu0s, aBFs0i_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i, aBFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFs0c, aBFs0i_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFs0i, aBFs0i_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFs0ll, aBFs0i_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFs0s, aBFs0i_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFu0c, aBFs0i_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFu0i, aBFs0i_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFu0ll, aBFs0i_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0i_BFu0s, aBFs0i_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll, aBFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFs0c, aBFs0i_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFs0i, aBFs0i_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFs0ll, aBFs0i_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFs0s, aBFs0i_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFu0c, aBFs0i_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFu0i, aBFs0i_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFu0ll, aBFs0i_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0ll_BFu0s, aBFs0i_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s, aBFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFs0c, aBFs0i_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFs0i, aBFs0i_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFs0ll, aBFs0i_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFs0s, aBFs0i_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFu0c, aBFs0i_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFu0i, aBFs0i_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFu0ll, aBFs0i_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0i_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0i_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0i_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0i_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0i_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0i_BFu0s_BFu0s_BFu0s, aBFs0i_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c, aBFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c, aBFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFs0c, aBFs0ll_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFs0i, aBFs0ll_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFs0ll, aBFs0ll_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFs0s, aBFs0ll_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFu0c, aBFs0ll_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFu0i, aBFs0ll_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFu0ll, aBFs0ll_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0c_BFu0s, aBFs0ll_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i, aBFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFs0c, aBFs0ll_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFs0i, aBFs0ll_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFs0ll, aBFs0ll_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFs0s, aBFs0ll_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFu0c, aBFs0ll_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFu0i, aBFs0ll_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFu0ll, aBFs0ll_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0i_BFu0s, aBFs0ll_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll, aBFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFs0c, aBFs0ll_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFs0i, aBFs0ll_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFs0ll, aBFs0ll_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFs0s, aBFs0ll_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFu0c, aBFs0ll_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFu0i, aBFs0ll_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFu0ll, aBFs0ll_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0ll_BFu0s, aBFs0ll_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s, aBFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFs0c, aBFs0ll_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFs0i, aBFs0ll_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFs0ll, aBFs0ll_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFs0s, aBFs0ll_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFu0c, aBFs0ll_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFu0i, aBFs0ll_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFu0ll, aBFs0ll_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFs0s_BFu0s, aBFs0ll_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c, aBFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFs0c, aBFs0ll_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFs0i, aBFs0ll_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFs0ll, aBFs0ll_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFs0s, aBFs0ll_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFu0c, aBFs0ll_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFu0i, aBFs0ll_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFu0ll, aBFs0ll_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0c_BFu0s, aBFs0ll_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i, aBFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFs0c, aBFs0ll_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFs0i, aBFs0ll_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFs0ll, aBFs0ll_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFs0s, aBFs0ll_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFu0c, aBFs0ll_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFu0i, aBFs0ll_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFu0ll, aBFs0ll_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0i_BFu0s, aBFs0ll_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll, aBFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFs0c, aBFs0ll_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFs0i, aBFs0ll_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFs0ll, aBFs0ll_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFs0s, aBFs0ll_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFu0c, aBFs0ll_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFu0i, aBFs0ll_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFu0ll, aBFs0ll_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0ll_BFu0s, aBFs0ll_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s, aBFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFs0c, aBFs0ll_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFs0i, aBFs0ll_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFs0ll, aBFs0ll_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFs0s, aBFs0ll_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFu0c, aBFs0ll_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFu0i, aBFs0ll_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFu0ll, aBFs0ll_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0c_BFu0s_BFu0s, aBFs0ll_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i, aBFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c, aBFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFs0c, aBFs0ll_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFs0i, aBFs0ll_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFs0ll, aBFs0ll_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFs0s, aBFs0ll_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFu0c, aBFs0ll_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFu0i, aBFs0ll_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFu0ll, aBFs0ll_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0c_BFu0s, aBFs0ll_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i, aBFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFs0c, aBFs0ll_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFs0i, aBFs0ll_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFs0ll, aBFs0ll_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFs0s, aBFs0ll_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFu0c, aBFs0ll_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFu0i, aBFs0ll_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFu0ll, aBFs0ll_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0i_BFu0s, aBFs0ll_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll, aBFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFs0c, aBFs0ll_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFs0i, aBFs0ll_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFs0ll, aBFs0ll_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFs0s, aBFs0ll_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFu0c, aBFs0ll_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFu0i, aBFs0ll_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFu0ll, aBFs0ll_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0ll_BFu0s, aBFs0ll_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s, aBFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFs0c, aBFs0ll_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFs0i, aBFs0ll_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFs0ll, aBFs0ll_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFs0s, aBFs0ll_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFu0c, aBFs0ll_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFu0i, aBFs0ll_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFu0ll, aBFs0ll_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFs0s_BFu0s, aBFs0ll_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c, aBFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFs0c, aBFs0ll_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFs0i, aBFs0ll_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFs0ll, aBFs0ll_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFs0s, aBFs0ll_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFu0c, aBFs0ll_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFu0i, aBFs0ll_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFu0ll, aBFs0ll_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0c_BFu0s, aBFs0ll_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i, aBFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFs0c, aBFs0ll_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFs0i, aBFs0ll_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFs0ll, aBFs0ll_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFs0s, aBFs0ll_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFu0c, aBFs0ll_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFu0i, aBFs0ll_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFu0ll, aBFs0ll_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0i_BFu0s, aBFs0ll_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll, aBFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFs0c, aBFs0ll_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFs0i, aBFs0ll_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFs0ll, aBFs0ll_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFs0s, aBFs0ll_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFu0c, aBFs0ll_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFu0i, aBFs0ll_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFu0ll, aBFs0ll_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0ll_BFu0s, aBFs0ll_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s, aBFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFs0c, aBFs0ll_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFs0i, aBFs0ll_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFs0ll, aBFs0ll_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFs0s, aBFs0ll_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFu0c, aBFs0ll_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFu0i, aBFs0ll_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFu0ll, aBFs0ll_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0i_BFu0s_BFu0s, aBFs0ll_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll, aBFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c, aBFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFs0c, aBFs0ll_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFs0i, aBFs0ll_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFs0ll, aBFs0ll_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFs0s, aBFs0ll_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFu0c, aBFs0ll_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFu0i, aBFs0ll_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFu0ll, aBFs0ll_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0c_BFu0s, aBFs0ll_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i, aBFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFs0c, aBFs0ll_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFs0i, aBFs0ll_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFs0ll, aBFs0ll_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFs0s, aBFs0ll_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFu0c, aBFs0ll_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFu0i, aBFs0ll_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFu0ll, aBFs0ll_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0i_BFu0s, aBFs0ll_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll, aBFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFs0c, aBFs0ll_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFs0i, aBFs0ll_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFs0ll, aBFs0ll_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFs0s, aBFs0ll_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFu0c, aBFs0ll_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFu0i, aBFs0ll_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFu0ll, aBFs0ll_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0ll_BFu0s, aBFs0ll_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s, aBFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFs0c, aBFs0ll_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFs0i, aBFs0ll_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFs0ll, aBFs0ll_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFs0s, aBFs0ll_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFu0c, aBFs0ll_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFu0i, aBFs0ll_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFu0ll, aBFs0ll_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFs0s_BFu0s, aBFs0ll_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c, aBFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFs0c, aBFs0ll_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFs0i, aBFs0ll_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFs0ll, aBFs0ll_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFs0s, aBFs0ll_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFu0c, aBFs0ll_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFu0i, aBFs0ll_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFu0ll, aBFs0ll_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0c_BFu0s, aBFs0ll_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i, aBFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFs0c, aBFs0ll_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFs0i, aBFs0ll_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFs0ll, aBFs0ll_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFs0s, aBFs0ll_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFu0c, aBFs0ll_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFu0i, aBFs0ll_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFu0ll, aBFs0ll_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0i_BFu0s, aBFs0ll_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll, aBFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFs0c, aBFs0ll_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFs0i, aBFs0ll_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFs0ll, aBFs0ll_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFs0s, aBFs0ll_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFu0c, aBFs0ll_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFu0i, aBFs0ll_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFu0ll, aBFs0ll_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0ll_BFu0s, aBFs0ll_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s, aBFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFs0c, aBFs0ll_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFs0i, aBFs0ll_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFs0ll, aBFs0ll_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFs0s, aBFs0ll_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFu0c, aBFs0ll_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFu0i, aBFs0ll_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFu0ll, aBFs0ll_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0ll_BFu0s_BFu0s, aBFs0ll_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s, aBFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c, aBFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFs0c, aBFs0ll_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFs0i, aBFs0ll_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFs0ll, aBFs0ll_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFs0s, aBFs0ll_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFu0c, aBFs0ll_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFu0i, aBFs0ll_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFu0ll, aBFs0ll_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0c_BFu0s, aBFs0ll_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i, aBFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFs0c, aBFs0ll_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFs0i, aBFs0ll_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFs0ll, aBFs0ll_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFs0s, aBFs0ll_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFu0c, aBFs0ll_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFu0i, aBFs0ll_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFu0ll, aBFs0ll_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0i_BFu0s, aBFs0ll_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll, aBFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFs0c, aBFs0ll_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFs0i, aBFs0ll_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFs0ll, aBFs0ll_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFs0s, aBFs0ll_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFu0c, aBFs0ll_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFu0i, aBFs0ll_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFu0ll, aBFs0ll_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0ll_BFu0s, aBFs0ll_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s, aBFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFs0c, aBFs0ll_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFs0i, aBFs0ll_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFs0ll, aBFs0ll_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFs0s, aBFs0ll_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFu0c, aBFs0ll_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFu0i, aBFs0ll_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFu0ll, aBFs0ll_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFs0s_BFu0s, aBFs0ll_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c, aBFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFs0c, aBFs0ll_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFs0i, aBFs0ll_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFs0ll, aBFs0ll_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFs0s, aBFs0ll_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFu0c, aBFs0ll_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFu0i, aBFs0ll_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFu0ll, aBFs0ll_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0c_BFu0s, aBFs0ll_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i, aBFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFs0c, aBFs0ll_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFs0i, aBFs0ll_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFs0ll, aBFs0ll_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFs0s, aBFs0ll_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFu0c, aBFs0ll_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFu0i, aBFs0ll_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFu0ll, aBFs0ll_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0i_BFu0s, aBFs0ll_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll, aBFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFs0c, aBFs0ll_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFs0i, aBFs0ll_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFs0ll, aBFs0ll_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFs0s, aBFs0ll_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFu0c, aBFs0ll_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFu0i, aBFs0ll_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFu0ll, aBFs0ll_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0ll_BFu0s, aBFs0ll_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s, aBFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFs0c, aBFs0ll_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFs0i, aBFs0ll_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFs0ll, aBFs0ll_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFs0s, aBFs0ll_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFu0c, aBFs0ll_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFu0i, aBFs0ll_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFu0ll, aBFs0ll_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFs0s_BFu0s_BFu0s, aBFs0ll_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c, aBFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c, aBFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFs0c, aBFs0ll_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFs0i, aBFs0ll_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFs0ll, aBFs0ll_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFs0s, aBFs0ll_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFu0c, aBFs0ll_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFu0i, aBFs0ll_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFu0ll, aBFs0ll_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0c_BFu0s, aBFs0ll_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i, aBFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFs0c, aBFs0ll_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFs0i, aBFs0ll_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFs0ll, aBFs0ll_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFs0s, aBFs0ll_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFu0c, aBFs0ll_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFu0i, aBFs0ll_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFu0ll, aBFs0ll_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0i_BFu0s, aBFs0ll_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll, aBFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFs0c, aBFs0ll_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFs0i, aBFs0ll_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFs0ll, aBFs0ll_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFs0s, aBFs0ll_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFu0c, aBFs0ll_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFu0i, aBFs0ll_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFu0ll, aBFs0ll_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0ll_BFu0s, aBFs0ll_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s, aBFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFs0c, aBFs0ll_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFs0i, aBFs0ll_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFs0ll, aBFs0ll_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFs0s, aBFs0ll_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFu0c, aBFs0ll_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFu0i, aBFs0ll_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFu0ll, aBFs0ll_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFs0s_BFu0s, aBFs0ll_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c, aBFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFs0c, aBFs0ll_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFs0i, aBFs0ll_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFs0ll, aBFs0ll_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFs0s, aBFs0ll_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFu0c, aBFs0ll_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFu0i, aBFs0ll_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFu0ll, aBFs0ll_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0c_BFu0s, aBFs0ll_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i, aBFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFs0c, aBFs0ll_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFs0i, aBFs0ll_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFs0ll, aBFs0ll_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFs0s, aBFs0ll_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFu0c, aBFs0ll_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFu0i, aBFs0ll_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFu0ll, aBFs0ll_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0i_BFu0s, aBFs0ll_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll, aBFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFs0c, aBFs0ll_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFs0i, aBFs0ll_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFs0ll, aBFs0ll_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFs0s, aBFs0ll_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFu0c, aBFs0ll_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFu0i, aBFs0ll_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFu0ll, aBFs0ll_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0ll_BFu0s, aBFs0ll_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s, aBFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFs0c, aBFs0ll_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFs0i, aBFs0ll_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFs0ll, aBFs0ll_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFs0s, aBFs0ll_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFu0c, aBFs0ll_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFu0i, aBFs0ll_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFu0ll, aBFs0ll_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0c_BFu0s_BFu0s, aBFs0ll_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i, aBFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c, aBFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFs0c, aBFs0ll_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFs0i, aBFs0ll_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFs0ll, aBFs0ll_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFs0s, aBFs0ll_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFu0c, aBFs0ll_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFu0i, aBFs0ll_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFu0ll, aBFs0ll_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0c_BFu0s, aBFs0ll_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i, aBFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFs0c, aBFs0ll_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFs0i, aBFs0ll_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFs0ll, aBFs0ll_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFs0s, aBFs0ll_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFu0c, aBFs0ll_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFu0i, aBFs0ll_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFu0ll, aBFs0ll_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0i_BFu0s, aBFs0ll_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll, aBFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFs0c, aBFs0ll_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFs0i, aBFs0ll_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFs0ll, aBFs0ll_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFs0s, aBFs0ll_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFu0c, aBFs0ll_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFu0i, aBFs0ll_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFu0ll, aBFs0ll_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0ll_BFu0s, aBFs0ll_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s, aBFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFs0c, aBFs0ll_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFs0i, aBFs0ll_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFs0ll, aBFs0ll_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFs0s, aBFs0ll_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFu0c, aBFs0ll_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFu0i, aBFs0ll_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFu0ll, aBFs0ll_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFs0s_BFu0s, aBFs0ll_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c, aBFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFs0c, aBFs0ll_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFs0i, aBFs0ll_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFs0ll, aBFs0ll_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFs0s, aBFs0ll_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFu0c, aBFs0ll_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFu0i, aBFs0ll_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFu0ll, aBFs0ll_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0c_BFu0s, aBFs0ll_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i, aBFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFs0c, aBFs0ll_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFs0i, aBFs0ll_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFs0ll, aBFs0ll_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFs0s, aBFs0ll_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFu0c, aBFs0ll_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFu0i, aBFs0ll_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFu0ll, aBFs0ll_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0i_BFu0s, aBFs0ll_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll, aBFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFs0c, aBFs0ll_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFs0i, aBFs0ll_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFs0ll, aBFs0ll_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFs0s, aBFs0ll_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFu0c, aBFs0ll_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFu0i, aBFs0ll_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFu0ll, aBFs0ll_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0ll_BFu0s, aBFs0ll_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s, aBFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFs0c, aBFs0ll_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFs0i, aBFs0ll_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFs0ll, aBFs0ll_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFs0s, aBFs0ll_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFu0c, aBFs0ll_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFu0i, aBFs0ll_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFu0ll, aBFs0ll_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0i_BFu0s_BFu0s, aBFs0ll_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll, aBFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c, aBFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFs0c, aBFs0ll_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFs0i, aBFs0ll_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFs0ll, aBFs0ll_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFs0s, aBFs0ll_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFu0c, aBFs0ll_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFu0i, aBFs0ll_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFu0ll, aBFs0ll_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0c_BFu0s, aBFs0ll_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i, aBFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFs0c, aBFs0ll_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFs0i, aBFs0ll_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFs0ll, aBFs0ll_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFs0s, aBFs0ll_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFu0c, aBFs0ll_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFu0i, aBFs0ll_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFu0ll, aBFs0ll_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0i_BFu0s, aBFs0ll_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll, aBFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFs0c, aBFs0ll_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFs0i, aBFs0ll_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFs0ll, aBFs0ll_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFs0s, aBFs0ll_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFu0c, aBFs0ll_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFu0i, aBFs0ll_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFu0ll, aBFs0ll_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0ll_BFu0s, aBFs0ll_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s, aBFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFs0c, aBFs0ll_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFs0i, aBFs0ll_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFs0ll, aBFs0ll_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFs0s, aBFs0ll_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFu0c, aBFs0ll_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFu0i, aBFs0ll_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFu0ll, aBFs0ll_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFs0s_BFu0s, aBFs0ll_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c, aBFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFs0c, aBFs0ll_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFs0i, aBFs0ll_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFs0ll, aBFs0ll_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFs0s, aBFs0ll_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFu0c, aBFs0ll_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFu0i, aBFs0ll_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFu0ll, aBFs0ll_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0c_BFu0s, aBFs0ll_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i, aBFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFs0c, aBFs0ll_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFs0i, aBFs0ll_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFs0ll, aBFs0ll_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFs0s, aBFs0ll_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFu0c, aBFs0ll_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFu0i, aBFs0ll_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFu0ll, aBFs0ll_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0i_BFu0s, aBFs0ll_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll, aBFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFs0c, aBFs0ll_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFs0i, aBFs0ll_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFs0ll, aBFs0ll_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFs0s, aBFs0ll_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFu0c, aBFs0ll_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFu0i, aBFs0ll_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFu0ll, aBFs0ll_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0ll_BFu0s, aBFs0ll_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s, aBFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFs0c, aBFs0ll_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFs0i, aBFs0ll_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFs0ll, aBFs0ll_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFs0s, aBFs0ll_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFu0c, aBFs0ll_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFu0i, aBFs0ll_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFu0ll, aBFs0ll_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0ll_BFu0s_BFu0s, aBFs0ll_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s, aBFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c, aBFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFs0c, aBFs0ll_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFs0i, aBFs0ll_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFs0ll, aBFs0ll_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFs0s, aBFs0ll_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFu0c, aBFs0ll_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFu0i, aBFs0ll_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFu0ll, aBFs0ll_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0c_BFu0s, aBFs0ll_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i, aBFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFs0c, aBFs0ll_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFs0i, aBFs0ll_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFs0ll, aBFs0ll_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFs0s, aBFs0ll_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFu0c, aBFs0ll_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFu0i, aBFs0ll_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFu0ll, aBFs0ll_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0i_BFu0s, aBFs0ll_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll, aBFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFs0c, aBFs0ll_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFs0i, aBFs0ll_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFs0ll, aBFs0ll_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFs0s, aBFs0ll_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFu0c, aBFs0ll_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFu0i, aBFs0ll_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFu0ll, aBFs0ll_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0ll_BFu0s, aBFs0ll_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s, aBFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFs0c, aBFs0ll_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFs0i, aBFs0ll_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFs0ll, aBFs0ll_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFs0s, aBFs0ll_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFu0c, aBFs0ll_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFu0i, aBFs0ll_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFu0ll, aBFs0ll_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFs0s_BFu0s, aBFs0ll_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c, aBFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFs0c, aBFs0ll_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFs0i, aBFs0ll_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFs0ll, aBFs0ll_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFs0s, aBFs0ll_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFu0c, aBFs0ll_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFu0i, aBFs0ll_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFu0ll, aBFs0ll_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0c_BFu0s, aBFs0ll_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i, aBFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFs0c, aBFs0ll_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFs0i, aBFs0ll_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFs0ll, aBFs0ll_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFs0s, aBFs0ll_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFu0c, aBFs0ll_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFu0i, aBFs0ll_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFu0ll, aBFs0ll_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0i_BFu0s, aBFs0ll_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll, aBFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFs0c, aBFs0ll_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFs0i, aBFs0ll_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFs0ll, aBFs0ll_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFs0s, aBFs0ll_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFu0c, aBFs0ll_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFu0i, aBFs0ll_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFu0ll, aBFs0ll_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0ll_BFu0s, aBFs0ll_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s, aBFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFs0c, aBFs0ll_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFs0i, aBFs0ll_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFs0ll, aBFs0ll_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFs0s, aBFs0ll_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFu0c, aBFs0ll_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFu0i, aBFs0ll_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFu0ll, aBFs0ll_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0ll_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0ll_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0ll_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0ll_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0ll_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0ll_BFu0s_BFu0s_BFu0s, aBFs0ll_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c, aBFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c, aBFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFs0c, aBFs0s_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFs0i, aBFs0s_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFs0ll, aBFs0s_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFs0s, aBFs0s_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFu0c, aBFs0s_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFu0i, aBFs0s_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFu0ll, aBFs0s_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0c_BFu0s, aBFs0s_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i, aBFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFs0c, aBFs0s_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFs0i, aBFs0s_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFs0ll, aBFs0s_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFs0s, aBFs0s_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFu0c, aBFs0s_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFu0i, aBFs0s_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFu0ll, aBFs0s_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0i_BFu0s, aBFs0s_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll, aBFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFs0c, aBFs0s_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFs0i, aBFs0s_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFs0ll, aBFs0s_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFs0s, aBFs0s_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFu0c, aBFs0s_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFu0i, aBFs0s_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFu0ll, aBFs0s_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0ll_BFu0s, aBFs0s_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s, aBFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFs0c, aBFs0s_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFs0i, aBFs0s_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFs0ll, aBFs0s_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFs0s, aBFs0s_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFu0c, aBFs0s_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFu0i, aBFs0s_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFu0ll, aBFs0s_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFs0s_BFu0s, aBFs0s_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c, aBFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFs0c, aBFs0s_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFs0i, aBFs0s_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFs0ll, aBFs0s_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFs0s, aBFs0s_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFu0c, aBFs0s_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFu0i, aBFs0s_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFu0ll, aBFs0s_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0c_BFu0s, aBFs0s_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i, aBFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFs0c, aBFs0s_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFs0i, aBFs0s_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFs0ll, aBFs0s_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFs0s, aBFs0s_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFu0c, aBFs0s_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFu0i, aBFs0s_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFu0ll, aBFs0s_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0i_BFu0s, aBFs0s_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll, aBFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFs0c, aBFs0s_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFs0i, aBFs0s_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFs0ll, aBFs0s_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFs0s, aBFs0s_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFu0c, aBFs0s_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFu0i, aBFs0s_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFu0ll, aBFs0s_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0ll_BFu0s, aBFs0s_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s, aBFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFs0c, aBFs0s_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFs0i, aBFs0s_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFs0ll, aBFs0s_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFs0s, aBFs0s_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFu0c, aBFs0s_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFu0i, aBFs0s_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFu0ll, aBFs0s_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0c_BFu0s_BFu0s, aBFs0s_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i, aBFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c, aBFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFs0c, aBFs0s_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFs0i, aBFs0s_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFs0ll, aBFs0s_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFs0s, aBFs0s_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFu0c, aBFs0s_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFu0i, aBFs0s_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFu0ll, aBFs0s_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0c_BFu0s, aBFs0s_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i, aBFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFs0c, aBFs0s_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFs0i, aBFs0s_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFs0ll, aBFs0s_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFs0s, aBFs0s_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFu0c, aBFs0s_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFu0i, aBFs0s_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFu0ll, aBFs0s_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0i_BFu0s, aBFs0s_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll, aBFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFs0c, aBFs0s_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFs0i, aBFs0s_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFs0ll, aBFs0s_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFs0s, aBFs0s_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFu0c, aBFs0s_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFu0i, aBFs0s_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFu0ll, aBFs0s_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0ll_BFu0s, aBFs0s_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s, aBFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFs0c, aBFs0s_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFs0i, aBFs0s_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFs0ll, aBFs0s_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFs0s, aBFs0s_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFu0c, aBFs0s_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFu0i, aBFs0s_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFu0ll, aBFs0s_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFs0s_BFu0s, aBFs0s_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c, aBFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFs0c, aBFs0s_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFs0i, aBFs0s_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFs0ll, aBFs0s_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFs0s, aBFs0s_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFu0c, aBFs0s_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFu0i, aBFs0s_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFu0ll, aBFs0s_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0c_BFu0s, aBFs0s_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i, aBFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFs0c, aBFs0s_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFs0i, aBFs0s_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFs0ll, aBFs0s_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFs0s, aBFs0s_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFu0c, aBFs0s_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFu0i, aBFs0s_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFu0ll, aBFs0s_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0i_BFu0s, aBFs0s_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll, aBFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFs0c, aBFs0s_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFs0i, aBFs0s_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFs0ll, aBFs0s_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFs0s, aBFs0s_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFu0c, aBFs0s_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFu0i, aBFs0s_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFu0ll, aBFs0s_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0ll_BFu0s, aBFs0s_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s, aBFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFs0c, aBFs0s_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFs0i, aBFs0s_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFs0ll, aBFs0s_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFs0s, aBFs0s_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFu0c, aBFs0s_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFu0i, aBFs0s_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFu0ll, aBFs0s_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0i_BFu0s_BFu0s, aBFs0s_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll, aBFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c, aBFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFs0c, aBFs0s_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFs0i, aBFs0s_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFs0ll, aBFs0s_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFs0s, aBFs0s_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFu0c, aBFs0s_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFu0i, aBFs0s_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFu0ll, aBFs0s_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0c_BFu0s, aBFs0s_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i, aBFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFs0c, aBFs0s_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFs0i, aBFs0s_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFs0ll, aBFs0s_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFs0s, aBFs0s_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFu0c, aBFs0s_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFu0i, aBFs0s_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFu0ll, aBFs0s_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0i_BFu0s, aBFs0s_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll, aBFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFs0c, aBFs0s_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFs0i, aBFs0s_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFs0ll, aBFs0s_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFs0s, aBFs0s_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFu0c, aBFs0s_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFu0i, aBFs0s_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFu0ll, aBFs0s_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0ll_BFu0s, aBFs0s_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s, aBFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFs0c, aBFs0s_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFs0i, aBFs0s_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFs0ll, aBFs0s_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFs0s, aBFs0s_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFu0c, aBFs0s_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFu0i, aBFs0s_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFu0ll, aBFs0s_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFs0s_BFu0s, aBFs0s_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c, aBFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFs0c, aBFs0s_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFs0i, aBFs0s_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFs0ll, aBFs0s_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFs0s, aBFs0s_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFu0c, aBFs0s_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFu0i, aBFs0s_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFu0ll, aBFs0s_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0c_BFu0s, aBFs0s_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i, aBFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFs0c, aBFs0s_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFs0i, aBFs0s_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFs0ll, aBFs0s_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFs0s, aBFs0s_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFu0c, aBFs0s_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFu0i, aBFs0s_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFu0ll, aBFs0s_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0i_BFu0s, aBFs0s_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll, aBFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFs0c, aBFs0s_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFs0i, aBFs0s_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFs0ll, aBFs0s_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFs0s, aBFs0s_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFu0c, aBFs0s_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFu0i, aBFs0s_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFu0ll, aBFs0s_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0ll_BFu0s, aBFs0s_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s, aBFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFs0c, aBFs0s_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFs0i, aBFs0s_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFs0ll, aBFs0s_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFs0s, aBFs0s_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFu0c, aBFs0s_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFu0i, aBFs0s_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFu0ll, aBFs0s_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0ll_BFu0s_BFu0s, aBFs0s_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s, aBFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c, aBFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFs0c, aBFs0s_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFs0i, aBFs0s_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFs0ll, aBFs0s_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFs0s, aBFs0s_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFu0c, aBFs0s_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFu0i, aBFs0s_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFu0ll, aBFs0s_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0c_BFu0s, aBFs0s_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i, aBFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFs0c, aBFs0s_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFs0i, aBFs0s_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFs0ll, aBFs0s_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFs0s, aBFs0s_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFu0c, aBFs0s_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFu0i, aBFs0s_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFu0ll, aBFs0s_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0i_BFu0s, aBFs0s_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll, aBFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFs0c, aBFs0s_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFs0i, aBFs0s_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFs0ll, aBFs0s_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFs0s, aBFs0s_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFu0c, aBFs0s_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFu0i, aBFs0s_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFu0ll, aBFs0s_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0ll_BFu0s, aBFs0s_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s, aBFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFs0c, aBFs0s_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFs0i, aBFs0s_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFs0ll, aBFs0s_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFs0s, aBFs0s_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFu0c, aBFs0s_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFu0i, aBFs0s_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFu0ll, aBFs0s_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFs0s_BFu0s, aBFs0s_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c, aBFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFs0c, aBFs0s_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFs0i, aBFs0s_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFs0ll, aBFs0s_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFs0s, aBFs0s_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFu0c, aBFs0s_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFu0i, aBFs0s_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFu0ll, aBFs0s_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0c_BFu0s, aBFs0s_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i, aBFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFs0c, aBFs0s_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFs0i, aBFs0s_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFs0ll, aBFs0s_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFs0s, aBFs0s_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFu0c, aBFs0s_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFu0i, aBFs0s_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFu0ll, aBFs0s_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0i_BFu0s, aBFs0s_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll, aBFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFs0c, aBFs0s_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFs0i, aBFs0s_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFs0ll, aBFs0s_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFs0s, aBFs0s_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFu0c, aBFs0s_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFu0i, aBFs0s_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFu0ll, aBFs0s_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0ll_BFu0s, aBFs0s_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s, aBFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFs0c, aBFs0s_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFs0i, aBFs0s_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFs0ll, aBFs0s_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFs0s, aBFs0s_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFu0c, aBFs0s_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFu0i, aBFs0s_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFu0ll, aBFs0s_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFs0s_BFu0s_BFu0s, aBFs0s_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c, aBFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c, aBFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFs0c, aBFs0s_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFs0i, aBFs0s_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFs0ll, aBFs0s_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFs0s, aBFs0s_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFu0c, aBFs0s_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFu0i, aBFs0s_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFu0ll, aBFs0s_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0c_BFu0s, aBFs0s_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i, aBFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFs0c, aBFs0s_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFs0i, aBFs0s_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFs0ll, aBFs0s_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFs0s, aBFs0s_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFu0c, aBFs0s_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFu0i, aBFs0s_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFu0ll, aBFs0s_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0i_BFu0s, aBFs0s_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll, aBFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFs0c, aBFs0s_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFs0i, aBFs0s_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFs0ll, aBFs0s_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFs0s, aBFs0s_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFu0c, aBFs0s_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFu0i, aBFs0s_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFu0ll, aBFs0s_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0ll_BFu0s, aBFs0s_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s, aBFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFs0c, aBFs0s_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFs0i, aBFs0s_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFs0ll, aBFs0s_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFs0s, aBFs0s_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFu0c, aBFs0s_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFu0i, aBFs0s_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFu0ll, aBFs0s_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFs0s_BFu0s, aBFs0s_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c, aBFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFs0c, aBFs0s_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFs0i, aBFs0s_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFs0ll, aBFs0s_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFs0s, aBFs0s_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFu0c, aBFs0s_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFu0i, aBFs0s_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFu0ll, aBFs0s_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0c_BFu0s, aBFs0s_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i, aBFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFs0c, aBFs0s_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFs0i, aBFs0s_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFs0ll, aBFs0s_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFs0s, aBFs0s_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFu0c, aBFs0s_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFu0i, aBFs0s_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFu0ll, aBFs0s_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0i_BFu0s, aBFs0s_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll, aBFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFs0c, aBFs0s_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFs0i, aBFs0s_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFs0ll, aBFs0s_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFs0s, aBFs0s_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFu0c, aBFs0s_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFu0i, aBFs0s_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFu0ll, aBFs0s_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0ll_BFu0s, aBFs0s_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s, aBFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFs0c, aBFs0s_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFs0i, aBFs0s_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFs0ll, aBFs0s_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFs0s, aBFs0s_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFu0c, aBFs0s_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFu0i, aBFs0s_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFu0ll, aBFs0s_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0c_BFu0s_BFu0s, aBFs0s_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i, aBFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c, aBFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFs0c, aBFs0s_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFs0i, aBFs0s_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFs0ll, aBFs0s_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFs0s, aBFs0s_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFu0c, aBFs0s_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFu0i, aBFs0s_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFu0ll, aBFs0s_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0c_BFu0s, aBFs0s_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i, aBFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFs0c, aBFs0s_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFs0i, aBFs0s_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFs0ll, aBFs0s_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFs0s, aBFs0s_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFu0c, aBFs0s_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFu0i, aBFs0s_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFu0ll, aBFs0s_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0i_BFu0s, aBFs0s_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll, aBFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFs0c, aBFs0s_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFs0i, aBFs0s_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFs0ll, aBFs0s_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFs0s, aBFs0s_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFu0c, aBFs0s_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFu0i, aBFs0s_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFu0ll, aBFs0s_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0ll_BFu0s, aBFs0s_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s, aBFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFs0c, aBFs0s_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFs0i, aBFs0s_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFs0ll, aBFs0s_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFs0s, aBFs0s_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFu0c, aBFs0s_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFu0i, aBFs0s_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFu0ll, aBFs0s_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFs0s_BFu0s, aBFs0s_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c, aBFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFs0c, aBFs0s_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFs0i, aBFs0s_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFs0ll, aBFs0s_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFs0s, aBFs0s_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFu0c, aBFs0s_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFu0i, aBFs0s_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFu0ll, aBFs0s_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0c_BFu0s, aBFs0s_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i, aBFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFs0c, aBFs0s_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFs0i, aBFs0s_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFs0ll, aBFs0s_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFs0s, aBFs0s_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFu0c, aBFs0s_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFu0i, aBFs0s_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFu0ll, aBFs0s_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0i_BFu0s, aBFs0s_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll, aBFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFs0c, aBFs0s_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFs0i, aBFs0s_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFs0ll, aBFs0s_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFs0s, aBFs0s_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFu0c, aBFs0s_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFu0i, aBFs0s_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFu0ll, aBFs0s_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0ll_BFu0s, aBFs0s_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s, aBFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFs0c, aBFs0s_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFs0i, aBFs0s_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFs0ll, aBFs0s_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFs0s, aBFs0s_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFu0c, aBFs0s_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFu0i, aBFs0s_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFu0ll, aBFs0s_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0i_BFu0s_BFu0s, aBFs0s_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll, aBFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c, aBFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFs0c, aBFs0s_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFs0i, aBFs0s_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFs0ll, aBFs0s_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFs0s, aBFs0s_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFu0c, aBFs0s_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFu0i, aBFs0s_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFu0ll, aBFs0s_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0c_BFu0s, aBFs0s_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i, aBFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFs0c, aBFs0s_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFs0i, aBFs0s_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFs0ll, aBFs0s_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFs0s, aBFs0s_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFu0c, aBFs0s_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFu0i, aBFs0s_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFu0ll, aBFs0s_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0i_BFu0s, aBFs0s_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll, aBFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFs0c, aBFs0s_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFs0i, aBFs0s_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFs0ll, aBFs0s_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFs0s, aBFs0s_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFu0c, aBFs0s_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFu0i, aBFs0s_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFu0ll, aBFs0s_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0ll_BFu0s, aBFs0s_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s, aBFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFs0c, aBFs0s_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFs0i, aBFs0s_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFs0ll, aBFs0s_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFs0s, aBFs0s_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFu0c, aBFs0s_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFu0i, aBFs0s_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFu0ll, aBFs0s_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFs0s_BFu0s, aBFs0s_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c, aBFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFs0c, aBFs0s_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFs0i, aBFs0s_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFs0ll, aBFs0s_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFs0s, aBFs0s_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFu0c, aBFs0s_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFu0i, aBFs0s_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFu0ll, aBFs0s_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0c_BFu0s, aBFs0s_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i, aBFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFs0c, aBFs0s_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFs0i, aBFs0s_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFs0ll, aBFs0s_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFs0s, aBFs0s_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFu0c, aBFs0s_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFu0i, aBFs0s_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFu0ll, aBFs0s_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0i_BFu0s, aBFs0s_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll, aBFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFs0c, aBFs0s_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFs0i, aBFs0s_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFs0ll, aBFs0s_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFs0s, aBFs0s_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFu0c, aBFs0s_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFu0i, aBFs0s_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFu0ll, aBFs0s_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0ll_BFu0s, aBFs0s_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s, aBFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFs0c, aBFs0s_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFs0i, aBFs0s_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFs0ll, aBFs0s_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFs0s, aBFs0s_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFu0c, aBFs0s_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFu0i, aBFs0s_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFu0ll, aBFs0s_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0ll_BFu0s_BFu0s, aBFs0s_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s, aBFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c, aBFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFs0c, aBFs0s_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFs0i, aBFs0s_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFs0ll, aBFs0s_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFs0s, aBFs0s_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFu0c, aBFs0s_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFu0i, aBFs0s_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFu0ll, aBFs0s_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0c_BFu0s, aBFs0s_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i, aBFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFs0c, aBFs0s_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFs0i, aBFs0s_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFs0ll, aBFs0s_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFs0s, aBFs0s_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFu0c, aBFs0s_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFu0i, aBFs0s_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFu0ll, aBFs0s_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0i_BFu0s, aBFs0s_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll, aBFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFs0c, aBFs0s_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFs0i, aBFs0s_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFs0ll, aBFs0s_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFs0s, aBFs0s_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFu0c, aBFs0s_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFu0i, aBFs0s_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFu0ll, aBFs0s_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0ll_BFu0s, aBFs0s_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s, aBFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFs0c, aBFs0s_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFs0i, aBFs0s_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFs0ll, aBFs0s_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFs0s, aBFs0s_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFu0c, aBFs0s_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFu0i, aBFs0s_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFu0ll, aBFs0s_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFs0s_BFu0s, aBFs0s_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c, aBFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFs0c, aBFs0s_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFs0i, aBFs0s_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFs0ll, aBFs0s_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFs0s, aBFs0s_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFu0c, aBFs0s_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFu0i, aBFs0s_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFu0ll, aBFs0s_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0c_BFu0s, aBFs0s_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i, aBFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFs0c, aBFs0s_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFs0i, aBFs0s_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFs0ll, aBFs0s_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFs0s, aBFs0s_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFu0c, aBFs0s_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFu0i, aBFs0s_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFu0ll, aBFs0s_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0i_BFu0s, aBFs0s_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll, aBFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFs0c, aBFs0s_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFs0i, aBFs0s_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFs0ll, aBFs0s_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFs0s, aBFs0s_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFu0c, aBFs0s_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFu0i, aBFs0s_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFu0ll, aBFs0s_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0ll_BFu0s, aBFs0s_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s, aBFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFs0c, aBFs0s_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFs0i, aBFs0s_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFs0ll, aBFs0s_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFs0s, aBFs0s_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFu0c, aBFs0s_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFu0i, aBFs0s_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFu0ll, aBFs0s_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFs0s_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFs0s_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFs0s_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFs0s_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFs0s_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFs0s_BFu0s_BFu0s_BFu0s, aBFs0s_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c()
{
  {
    init_simple_test("aBFu0c");
    static STRUCT_IF_C aBFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c, aBFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c, aBFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c, aBFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFs0c, aBFu0c_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFs0i, aBFu0c_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFs0ll, aBFu0c_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFs0s, aBFu0c_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFu0c, aBFu0c_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFu0i, aBFu0c_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFu0ll, aBFu0c_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0c_BFu0s, aBFu0c_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i, aBFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFs0c, aBFu0c_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFs0i, aBFu0c_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFs0ll, aBFu0c_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFs0s, aBFu0c_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFu0c, aBFu0c_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFu0i, aBFu0c_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFu0ll, aBFu0c_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0i_BFu0s, aBFu0c_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll, aBFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFs0c, aBFu0c_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFs0i, aBFu0c_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFs0ll, aBFu0c_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFs0s, aBFu0c_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFu0c, aBFu0c_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFu0i, aBFu0c_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFu0ll, aBFu0c_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0ll_BFu0s, aBFu0c_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s, aBFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFs0c, aBFu0c_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFs0i, aBFu0c_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFs0ll, aBFu0c_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFs0s, aBFu0c_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFu0c, aBFu0c_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFu0i, aBFu0c_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFu0ll, aBFu0c_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFs0s_BFu0s, aBFu0c_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c, aBFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFs0c, aBFu0c_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFs0i, aBFu0c_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFs0ll, aBFu0c_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFs0s, aBFu0c_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFu0c, aBFu0c_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFu0i, aBFu0c_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFu0ll, aBFu0c_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0c_BFu0s, aBFu0c_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i, aBFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFs0c, aBFu0c_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFs0i, aBFu0c_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFs0ll, aBFu0c_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFs0s, aBFu0c_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFu0c, aBFu0c_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFu0i, aBFu0c_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFu0ll, aBFu0c_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0i_BFu0s, aBFu0c_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll, aBFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFs0c, aBFu0c_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFs0i, aBFu0c_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFs0ll, aBFu0c_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFs0s, aBFu0c_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFu0c, aBFu0c_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFu0i, aBFu0c_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFu0ll, aBFu0c_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0ll_BFu0s, aBFu0c_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s, aBFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFs0c, aBFu0c_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFs0i, aBFu0c_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFs0ll, aBFu0c_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFs0s, aBFu0c_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFu0c, aBFu0c_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFu0i, aBFu0c_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFu0ll, aBFu0c_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0c_BFu0s_BFu0s, aBFu0c_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i, aBFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c, aBFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFs0c, aBFu0c_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFs0i, aBFu0c_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFs0ll, aBFu0c_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFs0s, aBFu0c_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFu0c, aBFu0c_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFu0i, aBFu0c_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFu0ll, aBFu0c_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0c_BFu0s, aBFu0c_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i, aBFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFs0c, aBFu0c_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFs0i, aBFu0c_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFs0ll, aBFu0c_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFs0s, aBFu0c_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFu0c, aBFu0c_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFu0i, aBFu0c_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFu0ll, aBFu0c_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0i_BFu0s, aBFu0c_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll, aBFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFs0c, aBFu0c_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFs0i, aBFu0c_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFs0ll, aBFu0c_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFs0s, aBFu0c_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFu0c, aBFu0c_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFu0i, aBFu0c_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFu0ll, aBFu0c_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0ll_BFu0s, aBFu0c_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s, aBFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFs0c, aBFu0c_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFs0i, aBFu0c_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFs0ll, aBFu0c_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFs0s, aBFu0c_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFu0c, aBFu0c_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFu0i, aBFu0c_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFu0ll, aBFu0c_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFs0s_BFu0s, aBFu0c_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c, aBFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFs0c, aBFu0c_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFs0i, aBFu0c_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFs0ll, aBFu0c_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFs0s, aBFu0c_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFu0c, aBFu0c_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFu0i, aBFu0c_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFu0ll, aBFu0c_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0c_BFu0s, aBFu0c_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i, aBFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFs0c, aBFu0c_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFs0i, aBFu0c_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFs0ll, aBFu0c_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFs0s, aBFu0c_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFu0c, aBFu0c_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFu0i, aBFu0c_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFu0ll, aBFu0c_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0i_BFu0s, aBFu0c_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll, aBFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFs0c, aBFu0c_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFs0i, aBFu0c_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFs0ll, aBFu0c_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFs0s, aBFu0c_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFu0c, aBFu0c_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFu0i, aBFu0c_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFu0ll, aBFu0c_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0ll_BFu0s, aBFu0c_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s, aBFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFs0c, aBFu0c_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFs0i, aBFu0c_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFs0ll, aBFu0c_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFs0s, aBFu0c_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFu0c, aBFu0c_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFu0i, aBFu0c_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFu0ll, aBFu0c_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0i_BFu0s_BFu0s, aBFu0c_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll, aBFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c, aBFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFs0c, aBFu0c_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFs0i, aBFu0c_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFs0ll, aBFu0c_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFs0s, aBFu0c_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFu0c, aBFu0c_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFu0i, aBFu0c_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFu0ll, aBFu0c_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0c_BFu0s, aBFu0c_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i, aBFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFs0c, aBFu0c_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFs0i, aBFu0c_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFs0ll, aBFu0c_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFs0s, aBFu0c_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFu0c, aBFu0c_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFu0i, aBFu0c_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFu0ll, aBFu0c_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0i_BFu0s, aBFu0c_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll, aBFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFs0c, aBFu0c_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFs0i, aBFu0c_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFs0ll, aBFu0c_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFs0s, aBFu0c_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFu0c, aBFu0c_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFu0i, aBFu0c_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFu0ll, aBFu0c_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0ll_BFu0s, aBFu0c_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s, aBFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFs0c, aBFu0c_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFs0i, aBFu0c_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFs0ll, aBFu0c_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFs0s, aBFu0c_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFu0c, aBFu0c_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFu0i, aBFu0c_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFu0ll, aBFu0c_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFs0s_BFu0s, aBFu0c_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c, aBFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFs0c, aBFu0c_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFs0i, aBFu0c_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFs0ll, aBFu0c_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFs0s, aBFu0c_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFu0c, aBFu0c_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFu0i, aBFu0c_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFu0ll, aBFu0c_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0c_BFu0s, aBFu0c_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i, aBFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFs0c, aBFu0c_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFs0i, aBFu0c_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFs0ll, aBFu0c_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFs0s, aBFu0c_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFu0c, aBFu0c_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFu0i, aBFu0c_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFu0ll, aBFu0c_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0i_BFu0s, aBFu0c_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll, aBFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFs0c, aBFu0c_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFs0i, aBFu0c_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFs0ll, aBFu0c_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFs0s, aBFu0c_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFu0c, aBFu0c_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFu0i, aBFu0c_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFu0ll, aBFu0c_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0ll_BFu0s, aBFu0c_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s, aBFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFs0c, aBFu0c_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFs0i, aBFu0c_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFs0ll, aBFu0c_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFs0s, aBFu0c_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFu0c, aBFu0c_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFu0i, aBFu0c_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFu0ll, aBFu0c_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0ll_BFu0s_BFu0s, aBFu0c_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s, aBFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c, aBFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFs0c, aBFu0c_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFs0i, aBFu0c_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFs0ll, aBFu0c_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFs0s, aBFu0c_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFu0c, aBFu0c_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFu0i, aBFu0c_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFu0ll, aBFu0c_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0c_BFu0s, aBFu0c_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i, aBFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFs0c, aBFu0c_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFs0i, aBFu0c_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFs0ll, aBFu0c_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFs0s, aBFu0c_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFu0c, aBFu0c_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFu0i, aBFu0c_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFu0ll, aBFu0c_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0i_BFu0s, aBFu0c_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll, aBFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFs0c, aBFu0c_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFs0i, aBFu0c_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFs0ll, aBFu0c_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFs0s, aBFu0c_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFu0c, aBFu0c_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFu0i, aBFu0c_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFu0ll, aBFu0c_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0ll_BFu0s, aBFu0c_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s, aBFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFs0c, aBFu0c_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFs0i, aBFu0c_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFs0ll, aBFu0c_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFs0s, aBFu0c_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFu0c, aBFu0c_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFu0i, aBFu0c_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFu0ll, aBFu0c_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFs0s_BFu0s, aBFu0c_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c, aBFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFs0c, aBFu0c_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFs0i, aBFu0c_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFs0ll, aBFu0c_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFs0s, aBFu0c_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFu0c, aBFu0c_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFu0i, aBFu0c_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFu0ll, aBFu0c_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0c_BFu0s, aBFu0c_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i, aBFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFs0c, aBFu0c_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFs0i, aBFu0c_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFs0ll, aBFu0c_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFs0s, aBFu0c_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFu0c, aBFu0c_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFu0i, aBFu0c_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFu0ll, aBFu0c_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0i_BFu0s, aBFu0c_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll, aBFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFs0c, aBFu0c_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFs0i, aBFu0c_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFs0ll, aBFu0c_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFs0s, aBFu0c_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFu0c, aBFu0c_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFu0i, aBFu0c_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFu0ll, aBFu0c_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0ll_BFu0s, aBFu0c_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s, aBFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFs0c, aBFu0c_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFs0i, aBFu0c_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFs0ll, aBFu0c_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFs0s, aBFu0c_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFu0c, aBFu0c_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFu0i, aBFu0c_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFu0ll, aBFu0c_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFs0s_BFu0s_BFu0s, aBFu0c_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c, aBFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c, aBFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFs0c, aBFu0c_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFs0i, aBFu0c_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFs0ll, aBFu0c_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFs0s, aBFu0c_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFu0c, aBFu0c_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFu0i, aBFu0c_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFu0ll, aBFu0c_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0c_BFu0s, aBFu0c_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i, aBFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFs0c, aBFu0c_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFs0i, aBFu0c_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFs0ll, aBFu0c_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFs0s, aBFu0c_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFu0c, aBFu0c_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFu0i, aBFu0c_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFu0ll, aBFu0c_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0i_BFu0s, aBFu0c_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll, aBFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFs0c, aBFu0c_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFs0i, aBFu0c_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFs0ll, aBFu0c_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFs0s, aBFu0c_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFu0c, aBFu0c_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFu0i, aBFu0c_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFu0ll, aBFu0c_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0ll_BFu0s, aBFu0c_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s, aBFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFs0c, aBFu0c_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFs0i, aBFu0c_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFs0ll, aBFu0c_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFs0s, aBFu0c_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFu0c, aBFu0c_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFu0i, aBFu0c_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFu0ll, aBFu0c_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFs0s_BFu0s, aBFu0c_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c, aBFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFs0c, aBFu0c_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFs0i, aBFu0c_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFs0ll, aBFu0c_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFs0s, aBFu0c_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFu0c, aBFu0c_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFu0i, aBFu0c_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFu0ll, aBFu0c_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0c_BFu0s, aBFu0c_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i, aBFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFs0c, aBFu0c_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFs0i, aBFu0c_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFs0ll, aBFu0c_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFs0s, aBFu0c_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFu0c, aBFu0c_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFu0i, aBFu0c_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFu0ll, aBFu0c_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0i_BFu0s, aBFu0c_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll, aBFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFs0c, aBFu0c_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFs0i, aBFu0c_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFs0ll, aBFu0c_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFs0s, aBFu0c_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFu0c, aBFu0c_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFu0i, aBFu0c_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFu0ll, aBFu0c_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0ll_BFu0s, aBFu0c_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s, aBFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFs0c, aBFu0c_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFs0i, aBFu0c_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFs0ll, aBFu0c_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFs0s, aBFu0c_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFu0c, aBFu0c_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFu0i, aBFu0c_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFu0ll, aBFu0c_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu0s_BFu0s, aBFu0c_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu15i, aBFu0c_BFu0c_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu15ll, aBFu0c_BFu0c_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu15s, aBFu0c_BFu0c_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu16i, aBFu0c_BFu0c_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu16ll, aBFu0c_BFu0c_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu16s, aBFu0c_BFu0c_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu17i, aBFu0c_BFu0c_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu17ll, aBFu0c_BFu0c_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu1c, aBFu0c_BFu0c_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu1i, aBFu0c_BFu0c_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu1ll, aBFu0c_BFu0c_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu1s, aBFu0c_BFu0c_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu31i, aBFu0c_BFu0c_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu31ll, aBFu0c_BFu0c_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu32i, aBFu0c_BFu0c_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu32ll, aBFu0c_BFu0c_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu33");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu0c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu0c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu0c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu33, aBFu0c_BFu0c_BFu33)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu7c, aBFu0c_BFu0c_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu7i, aBFu0c_BFu0c_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu7ll, aBFu0c_BFu0c_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu7s, aBFu0c_BFu0c_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu8c, aBFu0c_BFu0c_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu8i, aBFu0c_BFu0c_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu8ll, aBFu0c_BFu0c_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu8s, aBFu0c_BFu0c_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu9i, aBFu0c_BFu0c_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu9ll, aBFu0c_BFu0c_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu0c_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu0c_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu0c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_BFu9s, aBFu0c_BFu0c_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu0c_C()
{
  {
    init_simple_test("aBFu0c_BFu0c_C");
    static STRUCT_IF_C aBFu0c_BFu0c_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_C, aBFu0c_BFu0c_C)
//============================================================================



static void Test_aBFu0c_BFu0c_D()
{
  {
    init_simple_test("aBFu0c_BFu0c_D");
    static STRUCT_IF_C aBFu0c_BFu0c_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_D, aBFu0c_BFu0c_D)
//============================================================================



static void Test_aBFu0c_BFu0c_F()
{
  {
    init_simple_test("aBFu0c_BFu0c_F");
    static STRUCT_IF_C aBFu0c_BFu0c_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_F, aBFu0c_BFu0c_F)
//============================================================================



static void Test_aBFu0c_BFu0c_I()
{
  {
    init_simple_test("aBFu0c_BFu0c_I");
    static STRUCT_IF_C aBFu0c_BFu0c_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_I, aBFu0c_BFu0c_I)
//============================================================================



static void Test_aBFu0c_BFu0c_Ip()
{
  {
    init_simple_test("aBFu0c_BFu0c_Ip");
    static STRUCT_IF_C aBFu0c_BFu0c_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_Ip, aBFu0c_BFu0c_Ip)
//============================================================================



static void Test_aBFu0c_BFu0c_L()
{
  {
    init_simple_test("aBFu0c_BFu0c_L");
    static STRUCT_IF_C aBFu0c_BFu0c_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_L, aBFu0c_BFu0c_L)
//============================================================================



static void Test_aBFu0c_BFu0c_S()
{
  {
    init_simple_test("aBFu0c_BFu0c_S");
    static STRUCT_IF_C aBFu0c_BFu0c_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_S, aBFu0c_BFu0c_S)
//============================================================================



static void Test_aBFu0c_BFu0c_Uc()
{
  {
    init_simple_test("aBFu0c_BFu0c_Uc");
    static STRUCT_IF_C aBFu0c_BFu0c_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_Uc, aBFu0c_BFu0c_Uc)
//============================================================================



static void Test_aBFu0c_BFu0c_Ui()
{
  {
    init_simple_test("aBFu0c_BFu0c_Ui");
    static STRUCT_IF_C aBFu0c_BFu0c_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_Ui, aBFu0c_BFu0c_Ui)
//============================================================================



static void Test_aBFu0c_BFu0c_Ul()
{
  {
    init_simple_test("aBFu0c_BFu0c_Ul");
    static STRUCT_IF_C aBFu0c_BFu0c_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_Ul, aBFu0c_BFu0c_Ul)
//============================================================================



static void Test_aBFu0c_BFu0c_Us()
{
  {
    init_simple_test("aBFu0c_BFu0c_Us");
    static STRUCT_IF_C aBFu0c_BFu0c_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_Us, aBFu0c_BFu0c_Us)
//============================================================================



static void Test_aBFu0c_BFu0c_Vp()
{
  {
    init_simple_test("aBFu0c_BFu0c_Vp");
    static STRUCT_IF_C aBFu0c_BFu0c_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0c_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0c_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0c_Vp, aBFu0c_BFu0c_Vp)
//============================================================================



static void Test_aBFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i, aBFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c, aBFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFs0c, aBFu0c_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFs0i, aBFu0c_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFs0ll, aBFu0c_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFs0s, aBFu0c_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFu0c, aBFu0c_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFu0i, aBFu0c_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFu0ll, aBFu0c_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0c_BFu0s, aBFu0c_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i, aBFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFs0c, aBFu0c_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFs0i, aBFu0c_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFs0ll, aBFu0c_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFs0s, aBFu0c_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFu0c, aBFu0c_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFu0i, aBFu0c_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFu0ll, aBFu0c_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0i_BFu0s, aBFu0c_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll, aBFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFs0c, aBFu0c_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFs0i, aBFu0c_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFs0ll, aBFu0c_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFs0s, aBFu0c_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFu0c, aBFu0c_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFu0i, aBFu0c_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFu0ll, aBFu0c_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0ll_BFu0s, aBFu0c_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s, aBFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFs0c, aBFu0c_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFs0i, aBFu0c_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFs0ll, aBFu0c_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFs0s, aBFu0c_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFu0c, aBFu0c_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFu0i, aBFu0c_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFu0ll, aBFu0c_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFs0s_BFu0s, aBFu0c_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c, aBFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFs0c, aBFu0c_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFs0i, aBFu0c_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFs0ll, aBFu0c_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFs0s, aBFu0c_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFu0c, aBFu0c_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFu0i, aBFu0c_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFu0ll, aBFu0c_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0c_BFu0s, aBFu0c_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i, aBFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFs0c, aBFu0c_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFs0i, aBFu0c_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFs0ll, aBFu0c_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFs0s, aBFu0c_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFu0c, aBFu0c_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFu0i, aBFu0c_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFu0ll, aBFu0c_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0i_BFu0s, aBFu0c_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll, aBFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFs0c, aBFu0c_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFs0i, aBFu0c_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFs0ll, aBFu0c_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFs0s, aBFu0c_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFu0c, aBFu0c_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFu0i, aBFu0c_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFu0ll, aBFu0c_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0ll_BFu0s, aBFu0c_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s, aBFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFs0c, aBFu0c_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFs0i, aBFu0c_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFs0ll, aBFu0c_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFs0s, aBFu0c_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFu0c, aBFu0c_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFu0i, aBFu0c_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFu0ll, aBFu0c_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu0s_BFu0s, aBFu0c_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu15i, aBFu0c_BFu0i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu15ll, aBFu0c_BFu0i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu15s, aBFu0c_BFu0i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu16i, aBFu0c_BFu0i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu16ll, aBFu0c_BFu0i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu16s, aBFu0c_BFu0i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu17i, aBFu0c_BFu0i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu17ll, aBFu0c_BFu0i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu1c, aBFu0c_BFu0i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu1i, aBFu0c_BFu0i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu1ll, aBFu0c_BFu0i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu1s, aBFu0c_BFu0i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu31i, aBFu0c_BFu0i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu31ll, aBFu0c_BFu0i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu32i, aBFu0c_BFu0i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu32ll, aBFu0c_BFu0i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu0i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu0i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu0i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu33, aBFu0c_BFu0i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu7c, aBFu0c_BFu0i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu7i, aBFu0c_BFu0i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu7ll, aBFu0c_BFu0i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu7s, aBFu0c_BFu0i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu8c, aBFu0c_BFu0i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu8i, aBFu0c_BFu0i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu8ll, aBFu0c_BFu0i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu8s, aBFu0c_BFu0i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu9i, aBFu0c_BFu0i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu9ll, aBFu0c_BFu0i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu0i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu0i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu0i_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_BFu9s, aBFu0c_BFu0i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu0i_C()
{
  {
    init_simple_test("aBFu0c_BFu0i_C");
    static STRUCT_IF_C aBFu0c_BFu0i_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_C, aBFu0c_BFu0i_C)
//============================================================================



static void Test_aBFu0c_BFu0i_D()
{
  {
    init_simple_test("aBFu0c_BFu0i_D");
    static STRUCT_IF_C aBFu0c_BFu0i_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_D, aBFu0c_BFu0i_D)
//============================================================================



static void Test_aBFu0c_BFu0i_F()
{
  {
    init_simple_test("aBFu0c_BFu0i_F");
    static STRUCT_IF_C aBFu0c_BFu0i_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_F, aBFu0c_BFu0i_F)
//============================================================================



static void Test_aBFu0c_BFu0i_I()
{
  {
    init_simple_test("aBFu0c_BFu0i_I");
    static STRUCT_IF_C aBFu0c_BFu0i_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_I, aBFu0c_BFu0i_I)
//============================================================================



static void Test_aBFu0c_BFu0i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu0i_Ip");
    static STRUCT_IF_C aBFu0c_BFu0i_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_Ip, aBFu0c_BFu0i_Ip)
//============================================================================



static void Test_aBFu0c_BFu0i_L()
{
  {
    init_simple_test("aBFu0c_BFu0i_L");
    static STRUCT_IF_C aBFu0c_BFu0i_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_L, aBFu0c_BFu0i_L)
//============================================================================



static void Test_aBFu0c_BFu0i_S()
{
  {
    init_simple_test("aBFu0c_BFu0i_S");
    static STRUCT_IF_C aBFu0c_BFu0i_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_S, aBFu0c_BFu0i_S)
//============================================================================



static void Test_aBFu0c_BFu0i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu0i_Uc");
    static STRUCT_IF_C aBFu0c_BFu0i_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_Uc, aBFu0c_BFu0i_Uc)
//============================================================================



static void Test_aBFu0c_BFu0i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu0i_Ui");
    static STRUCT_IF_C aBFu0c_BFu0i_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_Ui, aBFu0c_BFu0i_Ui)
//============================================================================



static void Test_aBFu0c_BFu0i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu0i_Ul");
    static STRUCT_IF_C aBFu0c_BFu0i_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_Ul, aBFu0c_BFu0i_Ul)
//============================================================================



static void Test_aBFu0c_BFu0i_Us()
{
  {
    init_simple_test("aBFu0c_BFu0i_Us");
    static STRUCT_IF_C aBFu0c_BFu0i_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_Us, aBFu0c_BFu0i_Us)
//============================================================================



static void Test_aBFu0c_BFu0i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu0i_Vp");
    static STRUCT_IF_C aBFu0c_BFu0i_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0i_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0i_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0i_Vp, aBFu0c_BFu0i_Vp)
//============================================================================



static void Test_aBFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll, aBFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c, aBFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFs0c, aBFu0c_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFs0i, aBFu0c_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFs0ll, aBFu0c_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFs0s, aBFu0c_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFu0c, aBFu0c_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFu0i, aBFu0c_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFu0ll, aBFu0c_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0c_BFu0s, aBFu0c_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i, aBFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFs0c, aBFu0c_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFs0i, aBFu0c_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFs0ll, aBFu0c_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFs0s, aBFu0c_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFu0c, aBFu0c_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFu0i, aBFu0c_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFu0ll, aBFu0c_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0i_BFu0s, aBFu0c_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll, aBFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFs0c, aBFu0c_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFs0i, aBFu0c_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFs0ll, aBFu0c_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFs0s, aBFu0c_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFu0c, aBFu0c_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFu0i, aBFu0c_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFu0ll, aBFu0c_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0ll_BFu0s, aBFu0c_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s, aBFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFs0c, aBFu0c_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFs0i, aBFu0c_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFs0ll, aBFu0c_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFs0s, aBFu0c_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFu0c, aBFu0c_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFu0i, aBFu0c_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFu0ll, aBFu0c_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFs0s_BFu0s, aBFu0c_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c, aBFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFs0c, aBFu0c_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFs0i, aBFu0c_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFs0ll, aBFu0c_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFs0s, aBFu0c_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFu0c, aBFu0c_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFu0i, aBFu0c_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFu0ll, aBFu0c_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0c_BFu0s, aBFu0c_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i, aBFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFs0c, aBFu0c_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFs0i, aBFu0c_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFs0ll, aBFu0c_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFs0s, aBFu0c_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFu0c, aBFu0c_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFu0i, aBFu0c_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFu0ll, aBFu0c_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0i_BFu0s, aBFu0c_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll, aBFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFs0c, aBFu0c_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFs0i, aBFu0c_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFs0ll, aBFu0c_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFs0s, aBFu0c_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFu0c, aBFu0c_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFu0i, aBFu0c_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFu0ll, aBFu0c_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0ll_BFu0s, aBFu0c_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s, aBFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFs0c, aBFu0c_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFs0i, aBFu0c_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFs0ll, aBFu0c_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFs0s, aBFu0c_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFu0c, aBFu0c_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFu0i, aBFu0c_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFu0ll, aBFu0c_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu0s_BFu0s, aBFu0c_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu15i, aBFu0c_BFu0ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu15ll, aBFu0c_BFu0ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu15s, aBFu0c_BFu0ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu16i, aBFu0c_BFu0ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu16ll, aBFu0c_BFu0ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu16s, aBFu0c_BFu0ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu17i, aBFu0c_BFu0ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu17ll, aBFu0c_BFu0ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu1c, aBFu0c_BFu0ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu1i, aBFu0c_BFu0ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu1ll, aBFu0c_BFu0ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu1s, aBFu0c_BFu0ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu31i, aBFu0c_BFu0ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu31ll, aBFu0c_BFu0ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu32i, aBFu0c_BFu0ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu32ll, aBFu0c_BFu0ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu0ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu0ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu0ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu33, aBFu0c_BFu0ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu7c, aBFu0c_BFu0ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu7i, aBFu0c_BFu0ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu7ll, aBFu0c_BFu0ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu7s, aBFu0c_BFu0ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu8c, aBFu0c_BFu0ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu8i, aBFu0c_BFu0ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu8ll, aBFu0c_BFu0ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu8s, aBFu0c_BFu0ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu9i, aBFu0c_BFu0ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu9ll, aBFu0c_BFu0ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu0ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu0ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu0ll_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_BFu9s, aBFu0c_BFu0ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu0ll_C()
{
  {
    init_simple_test("aBFu0c_BFu0ll_C");
    static STRUCT_IF_C aBFu0c_BFu0ll_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_C, aBFu0c_BFu0ll_C)
//============================================================================



static void Test_aBFu0c_BFu0ll_D()
{
  {
    init_simple_test("aBFu0c_BFu0ll_D");
    static STRUCT_IF_C aBFu0c_BFu0ll_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_D, aBFu0c_BFu0ll_D)
//============================================================================



static void Test_aBFu0c_BFu0ll_F()
{
  {
    init_simple_test("aBFu0c_BFu0ll_F");
    static STRUCT_IF_C aBFu0c_BFu0ll_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_F, aBFu0c_BFu0ll_F)
//============================================================================



static void Test_aBFu0c_BFu0ll_I()
{
  {
    init_simple_test("aBFu0c_BFu0ll_I");
    static STRUCT_IF_C aBFu0c_BFu0ll_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_I, aBFu0c_BFu0ll_I)
//============================================================================



static void Test_aBFu0c_BFu0ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu0ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu0ll_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_Ip, aBFu0c_BFu0ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu0ll_L()
{
  {
    init_simple_test("aBFu0c_BFu0ll_L");
    static STRUCT_IF_C aBFu0c_BFu0ll_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_L, aBFu0c_BFu0ll_L)
//============================================================================



static void Test_aBFu0c_BFu0ll_S()
{
  {
    init_simple_test("aBFu0c_BFu0ll_S");
    static STRUCT_IF_C aBFu0c_BFu0ll_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_S, aBFu0c_BFu0ll_S)
//============================================================================



static void Test_aBFu0c_BFu0ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu0ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu0ll_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_Uc, aBFu0c_BFu0ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu0ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu0ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu0ll_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_Ui, aBFu0c_BFu0ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu0ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu0ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu0ll_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_Ul, aBFu0c_BFu0ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu0ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu0ll_Us");
    static STRUCT_IF_C aBFu0c_BFu0ll_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_Us, aBFu0c_BFu0ll_Us)
//============================================================================



static void Test_aBFu0c_BFu0ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu0ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu0ll_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0ll_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0ll_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0ll_Vp, aBFu0c_BFu0ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s, aBFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c, aBFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFs0c, aBFu0c_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFs0i, aBFu0c_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFs0ll, aBFu0c_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFs0s, aBFu0c_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFu0c, aBFu0c_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFu0i, aBFu0c_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFu0ll, aBFu0c_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0c_BFu0s, aBFu0c_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i, aBFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFs0c, aBFu0c_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFs0i, aBFu0c_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFs0ll, aBFu0c_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFs0s, aBFu0c_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFu0c, aBFu0c_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFu0i, aBFu0c_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFu0ll, aBFu0c_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0i_BFu0s, aBFu0c_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll, aBFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFs0c, aBFu0c_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFs0i, aBFu0c_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFs0ll, aBFu0c_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFs0s, aBFu0c_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFu0c, aBFu0c_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFu0i, aBFu0c_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFu0ll, aBFu0c_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0ll_BFu0s, aBFu0c_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s, aBFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFs0c, aBFu0c_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFs0i, aBFu0c_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFs0ll, aBFu0c_BFu0s_BFs0s_BFs0ll)
//============================================================================

