summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-05-19 11:26:10 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-05-27 12:52:42 -0700
commita5dd47d17852b57449c3d6f236b907efd510a272 (patch)
tree13fdd42c32bcd4b026bd7517ae8c4f22b2a29458 /gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c
parent9a427c2c3bbce8d365d78f7e09f45cd9c6553a13 (diff)
downloadgcc-hjl/iamcu/gcc-4_9-branch.tar.gz
Add Intel MCU psABI testsuitehjl/iamcu/gcc-4_9-branch
We run Intel MCU psABI tests on Linux/ia32 with -miamcu. Since Intel MCU psABI has a different calling convention, the only Linux libc function allowed is "abort". asm-support.S contains some support functions as well as a subset of soft-fp, which is written in assembly with x87 instructions, to provide intrinsics needed by -miamcu so that Intel MCU psABI tests can run on Linux. * gcc.target/i386/iamcu/abi-iamcu.exp: New file. * gcc.target/i386/iamcu/args.h: Likewise. * gcc.target/i386/iamcu/asm-support.S: Likewise. * gcc.target/i386/iamcu/defines.h: Likewise. * gcc.target/i386/iamcu/macros.h: Likewise. * gcc.target/i386/iamcu/test_3_element_struct_and_unions.c: Likewise. * gcc.target/i386/iamcu/test_basic_64bit_returning.c: Likewise. * gcc.target/i386/iamcu/test_basic_alignment.c: Likewise. * gcc.target/i386/iamcu/test_basic_array_size_and_align.c: Likewise. * gcc.target/i386/iamcu/test_basic_returning.c: Likewise. * gcc.target/i386/iamcu/test_basic_sizes.c: Likewise. * gcc.target/i386/iamcu/test_basic_struct_size_and_align.c: Likewise. * gcc.target/i386/iamcu/test_basic_union_size_and_align.c: Likewise. * gcc.target/i386/iamcu/test_bitfields.c: Likewise. * gcc.target/i386/iamcu/test_complex_returning.c: Likewise. * gcc.target/i386/iamcu/test_passing_floats.c: Likewise. * gcc.target/i386/iamcu/test_passing_integers.c: Likewise. * gcc.target/i386/iamcu/test_passing_structs.c: Likewise. * gcc.target/i386/iamcu/test_passing_structs_and_unions.c: Likewise. * gcc.target/i386/iamcu/test_passing_unions.c: Likewise. * gcc.target/i386/iamcu/test_struct_returning.c: Likewise. * gcc.target/i386/iamcu/test_varargs.c: Likewise.
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c')
-rw-r--r--gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c521
1 files changed, 521 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c b/gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c
new file mode 100644
index 00000000000..7bec2119934
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c
@@ -0,0 +1,521 @@
+#include "defines.h"
+#include "macros.h"
+
+/* Check structs and unions of all permutations of 3 basic types. */
+int
+main (void)
+{
+ check_struct_and_union3(char, char, char, 3, 1);
+ check_struct_and_union3(char, char, short, 4, 2);
+ check_struct_and_union3(char, char, int, 8, 4);
+ check_struct_and_union3(char, char, long, 8, 4);
+ check_struct_and_union3(char, char, long long, 12, 8);
+ check_struct_and_union3(char, char, float, 8, 4);
+ check_struct_and_union3(char, char, double, 12, 8);
+ check_struct_and_union3(char, char, long double, 12, 8);
+ check_struct_and_union3(char, short, char, 6, 2);
+ check_struct_and_union3(char, short, short, 6, 2);
+ check_struct_and_union3(char, short, int, 8, 4);
+ check_struct_and_union3(char, short, long, 8, 4);
+ check_struct_and_union3(char, short, long long, 12, 8);
+ check_struct_and_union3(char, short, float, 8, 4);
+ check_struct_and_union3(char, short, double, 12, 8);
+ check_struct_and_union3(char, short, long double, 12, 8);
+ check_struct_and_union3(char, int, char, 12, 4);
+ check_struct_and_union3(char, int, short, 12, 4);
+ check_struct_and_union3(char, int, int, 12, 4);
+ check_struct_and_union3(char, int, long, 12, 4);
+ check_struct_and_union3(char, int, long long, 16, 8);
+ check_struct_and_union3(char, int, float, 12, 4);
+ check_struct_and_union3(char, int, double, 16, 8);
+ check_struct_and_union3(char, int, long double, 16, 8);
+ check_struct_and_union3(char, long, char, 12, 4);
+ check_struct_and_union3(char, long, short, 12, 4);
+ check_struct_and_union3(char, long, int, 12, 4);
+ check_struct_and_union3(char, long, long, 12, 4);
+ check_struct_and_union3(char, long, long long, 16, 8);
+ check_struct_and_union3(char, long, float, 12, 4);
+ check_struct_and_union3(char, long, double, 16, 8);
+ check_struct_and_union3(char, long, long double, 16, 8);
+ check_struct_and_union3(char, long long, char, 16, 8);
+ check_struct_and_union3(char, long long, short, 16, 8);
+ check_struct_and_union3(char, long long, int, 16, 8);
+ check_struct_and_union3(char, long long, long, 16, 8);
+ check_struct_and_union3(char, long long, long long, 20, 8);
+ check_struct_and_union3(char, long long, float, 16, 8);
+ check_struct_and_union3(char, long long, double, 20, 8);
+ check_struct_and_union3(char, long long, long double, 20, 8);
+ check_struct_and_union3(char, float, char, 12, 4);
+ check_struct_and_union3(char, float, short, 12, 4);
+ check_struct_and_union3(char, float, int, 12, 4);
+ check_struct_and_union3(char, float, long, 12, 4);
+ check_struct_and_union3(char, float, long long, 16, 8);
+ check_struct_and_union3(char, float, float, 12, 4);
+ check_struct_and_union3(char, float, double, 16, 8);
+ check_struct_and_union3(char, float, long double, 16, 8);
+ check_struct_and_union3(char, double, char, 16, 8);
+ check_struct_and_union3(char, double, short, 16, 8);
+ check_struct_and_union3(char, double, int, 16, 8);
+ check_struct_and_union3(char, double, long, 16, 8);
+ check_struct_and_union3(char, double, long long, 20, 8);
+ check_struct_and_union3(char, double, float, 16, 8);
+ check_struct_and_union3(char, double, double, 20, 8);
+ check_struct_and_union3(char, double, long double, 20, 8);
+ check_struct_and_union3(char, long double, char, 16, 8);
+ check_struct_and_union3(char, long double, short, 16, 8);
+ check_struct_and_union3(char, long double, int, 16, 8);
+ check_struct_and_union3(char, long double, long, 16, 8);
+ check_struct_and_union3(char, long double, long long, 20, 8);
+ check_struct_and_union3(char, long double, float, 16, 8);
+ check_struct_and_union3(char, long double, double, 20, 8);
+ check_struct_and_union3(char, long double, long double, 20, 8);
+ check_struct_and_union3(short, char, char, 4, 2);
+ check_struct_and_union3(short, char, short, 6, 2);
+ check_struct_and_union3(short, char, int, 8, 4);
+ check_struct_and_union3(short, char, long, 8, 4);
+ check_struct_and_union3(short, char, long long, 12, 8);
+ check_struct_and_union3(short, char, float, 8, 4);
+ check_struct_and_union3(short, char, double, 12, 8);
+ check_struct_and_union3(short, char, long double, 12, 8);
+ check_struct_and_union3(short, short, char, 6, 2);
+ check_struct_and_union3(short, short, short, 6, 2);
+ check_struct_and_union3(short, short, int, 8, 4);
+ check_struct_and_union3(short, short, long, 8, 4);
+ check_struct_and_union3(short, short, long long, 12, 8);
+ check_struct_and_union3(short, short, float, 8, 4);
+ check_struct_and_union3(short, short, double, 12, 8);
+ check_struct_and_union3(short, short, long double, 12, 8);
+ check_struct_and_union3(short, int, char, 12, 4);
+ check_struct_and_union3(short, int, short, 12, 4);
+ check_struct_and_union3(short, int, int, 12, 4);
+ check_struct_and_union3(short, int, long, 12, 4);
+ check_struct_and_union3(short, int, long long, 16, 8);
+ check_struct_and_union3(short, int, float, 12, 4);
+ check_struct_and_union3(short, int, double, 16, 8);
+ check_struct_and_union3(short, int, long double, 16, 8);
+ check_struct_and_union3(short, long, char, 12, 4);
+ check_struct_and_union3(short, long, short, 12, 4);
+ check_struct_and_union3(short, long, int, 12, 4);
+ check_struct_and_union3(short, long, long, 12, 4);
+ check_struct_and_union3(short, long, long long, 16, 8);
+ check_struct_and_union3(short, long, float, 12, 4);
+ check_struct_and_union3(short, long, double, 16, 8);
+ check_struct_and_union3(short, long, long double, 16, 8);
+ check_struct_and_union3(short, long long, char, 16, 8);
+ check_struct_and_union3(short, long long, short, 16, 8);
+ check_struct_and_union3(short, long long, int, 16, 8);
+ check_struct_and_union3(short, long long, long, 16, 8);
+ check_struct_and_union3(short, long long, long long, 20, 8);
+ check_struct_and_union3(short, long long, float, 16, 8);
+ check_struct_and_union3(short, long long, double, 20, 8);
+ check_struct_and_union3(short, long long, long double, 20, 8);
+ check_struct_and_union3(short, float, char, 12, 4);
+ check_struct_and_union3(short, float, short, 12, 4);
+ check_struct_and_union3(short, float, int, 12, 4);
+ check_struct_and_union3(short, float, long, 12, 4);
+ check_struct_and_union3(short, float, long long, 16, 8);
+ check_struct_and_union3(short, float, float, 12, 4);
+ check_struct_and_union3(short, float, double, 16, 8);
+ check_struct_and_union3(short, float, long double, 16, 8);
+ check_struct_and_union3(short, double, char, 16, 8);
+ check_struct_and_union3(short, double, short, 16, 8);
+ check_struct_and_union3(short, double, int, 16, 8);
+ check_struct_and_union3(short, double, long, 16, 8);
+ check_struct_and_union3(short, double, long long, 20, 8);
+ check_struct_and_union3(short, double, float, 16, 8);
+ check_struct_and_union3(short, double, double, 20, 8);
+ check_struct_and_union3(short, double, long double, 20, 8);
+ check_struct_and_union3(short, long double, char, 16, 8);
+ check_struct_and_union3(short, long double, short, 16, 8);
+ check_struct_and_union3(short, long double, int, 16, 8);
+ check_struct_and_union3(short, long double, long, 16, 8);
+ check_struct_and_union3(short, long double, long long, 20, 8);
+ check_struct_and_union3(short, long double, float, 16, 8);
+ check_struct_and_union3(short, long double, double, 20, 8);
+ check_struct_and_union3(short, long double, long double, 20, 8);
+ check_struct_and_union3(int, char, char, 8, 4);
+ check_struct_and_union3(int, char, short, 8, 4);
+ check_struct_and_union3(int, char, int, 12, 4);
+ check_struct_and_union3(int, char, long, 12, 4);
+ check_struct_and_union3(int, char, long long, 16, 8);
+ check_struct_and_union3(int, char, float, 12, 4);
+ check_struct_and_union3(int, char, double, 16, 8);
+ check_struct_and_union3(int, char, long double, 16, 8);
+ check_struct_and_union3(int, short, char, 8, 4);
+ check_struct_and_union3(int, short, short, 8, 4);
+ check_struct_and_union3(int, short, int, 12, 4);
+ check_struct_and_union3(int, short, long, 12, 4);
+ check_struct_and_union3(int, short, long long, 16, 8);
+ check_struct_and_union3(int, short, float, 12, 4);
+ check_struct_and_union3(int, short, double, 16, 8);
+ check_struct_and_union3(int, short, long double, 16, 8);
+ check_struct_and_union3(int, int, char, 12, 4);
+ check_struct_and_union3(int, int, short, 12, 4);
+ check_struct_and_union3(int, int, int, 12, 4);
+ check_struct_and_union3(int, int, long, 12, 4);
+ check_struct_and_union3(int, int, long long, 16, 8);
+ check_struct_and_union3(int, int, float, 12, 4);
+ check_struct_and_union3(int, int, double, 16, 8);
+ check_struct_and_union3(int, int, long double, 16, 8);
+ check_struct_and_union3(int, long, char, 12, 4);
+ check_struct_and_union3(int, long, short, 12, 4);
+ check_struct_and_union3(int, long, int, 12, 4);
+ check_struct_and_union3(int, long, long, 12, 4);
+ check_struct_and_union3(int, long, long long, 16, 8);
+ check_struct_and_union3(int, long, float, 12, 4);
+ check_struct_and_union3(int, long, double, 16, 8);
+ check_struct_and_union3(int, long, long double, 16, 8);
+ check_struct_and_union3(int, long long, char, 16, 8);
+ check_struct_and_union3(int, long long, short, 16, 8);
+ check_struct_and_union3(int, long long, int, 16, 8);
+ check_struct_and_union3(int, long long, long, 16, 8);
+ check_struct_and_union3(int, long long, long long, 20, 8);
+ check_struct_and_union3(int, long long, float, 16, 8);
+ check_struct_and_union3(int, long long, double, 20, 8);
+ check_struct_and_union3(int, long long, long double, 20, 8);
+ check_struct_and_union3(int, float, char, 12, 4);
+ check_struct_and_union3(int, float, short, 12, 4);
+ check_struct_and_union3(int, float, int, 12, 4);
+ check_struct_and_union3(int, float, long, 12, 4);
+ check_struct_and_union3(int, float, long long, 16, 8);
+ check_struct_and_union3(int, float, float, 12, 4);
+ check_struct_and_union3(int, float, double, 16, 8);
+ check_struct_and_union3(int, float, long double, 16, 8);
+ check_struct_and_union3(int, double, char, 16, 8);
+ check_struct_and_union3(int, double, short, 16, 8);
+ check_struct_and_union3(int, double, int, 16, 8);
+ check_struct_and_union3(int, double, long, 16, 8);
+ check_struct_and_union3(int, double, long long, 20, 8);
+ check_struct_and_union3(int, double, float, 16, 8);
+ check_struct_and_union3(int, double, double, 20, 8);
+ check_struct_and_union3(int, double, long double, 20, 8);
+ check_struct_and_union3(int, long double, char, 16, 8);
+ check_struct_and_union3(int, long double, short, 16, 8);
+ check_struct_and_union3(int, long double, int, 16, 8);
+ check_struct_and_union3(int, long double, long, 16, 8);
+ check_struct_and_union3(int, long double, long long, 20, 8);
+ check_struct_and_union3(int, long double, float, 16, 8);
+ check_struct_and_union3(int, long double, double, 20, 8);
+ check_struct_and_union3(int, long double, long double, 20, 8);
+ check_struct_and_union3(long, char, char, 8, 4);
+ check_struct_and_union3(long, char, short, 8, 4);
+ check_struct_and_union3(long, char, int, 12, 4);
+ check_struct_and_union3(long, char, long, 12, 4);
+ check_struct_and_union3(long, char, long long, 16, 8);
+ check_struct_and_union3(long, char, float, 12, 4);
+ check_struct_and_union3(long, char, double, 16, 8);
+ check_struct_and_union3(long, char, long double, 16, 8);
+ check_struct_and_union3(long, short, char, 8, 4);
+ check_struct_and_union3(long, short, short, 8, 4);
+ check_struct_and_union3(long, short, int, 12, 4);
+ check_struct_and_union3(long, short, long, 12, 4);
+ check_struct_and_union3(long, short, long long, 16, 8);
+ check_struct_and_union3(long, short, float, 12, 4);
+ check_struct_and_union3(long, short, double, 16, 8);
+ check_struct_and_union3(long, short, long double, 16, 8);
+ check_struct_and_union3(long, int, char, 12, 4);
+ check_struct_and_union3(long, int, short, 12, 4);
+ check_struct_and_union3(long, int, int, 12, 4);
+ check_struct_and_union3(long, int, long, 12, 4);
+ check_struct_and_union3(long, int, long long, 16, 8);
+ check_struct_and_union3(long, int, float, 12, 4);
+ check_struct_and_union3(long, int, double, 16, 8);
+ check_struct_and_union3(long, int, long double, 16, 8);
+ check_struct_and_union3(long, long, char, 12, 4);
+ check_struct_and_union3(long, long, short, 12, 4);
+ check_struct_and_union3(long, long, int, 12, 4);
+ check_struct_and_union3(long, long, long, 12, 4);
+ check_struct_and_union3(long, long, long long, 16, 8);
+ check_struct_and_union3(long, long, float, 12, 4);
+ check_struct_and_union3(long, long, double, 16, 8);
+ check_struct_and_union3(long, long, long double, 16, 8);
+ check_struct_and_union3(long, long long, char, 16, 8);
+ check_struct_and_union3(long, long long, short, 16, 8);
+ check_struct_and_union3(long, long long, int, 16, 8);
+ check_struct_and_union3(long, long long, long, 16, 8);
+ check_struct_and_union3(long, long long, long long, 20, 8);
+ check_struct_and_union3(long, long long, float, 16, 8);
+ check_struct_and_union3(long, long long, double, 20, 8);
+ check_struct_and_union3(long, long long, long double, 20, 8);
+ check_struct_and_union3(long, float, char, 12, 4);
+ check_struct_and_union3(long, float, short, 12, 4);
+ check_struct_and_union3(long, float, int, 12, 4);
+ check_struct_and_union3(long, float, long, 12, 4);
+ check_struct_and_union3(long, float, long long, 16, 8);
+ check_struct_and_union3(long, float, float, 12, 4);
+ check_struct_and_union3(long, float, double, 16, 8);
+ check_struct_and_union3(long, float, long double, 16, 8);
+ check_struct_and_union3(long, double, char, 16, 8);
+ check_struct_and_union3(long, double, short, 16, 8);
+ check_struct_and_union3(long, double, int, 16, 8);
+ check_struct_and_union3(long, double, long, 16, 8);
+ check_struct_and_union3(long, double, long long, 20, 8);
+ check_struct_and_union3(long, double, float, 16, 8);
+ check_struct_and_union3(long, double, double, 20, 8);
+ check_struct_and_union3(long, double, long double, 20, 8);
+ check_struct_and_union3(long, long double, char, 16, 8);
+ check_struct_and_union3(long, long double, short, 16, 8);
+ check_struct_and_union3(long, long double, int, 16, 8);
+ check_struct_and_union3(long, long double, long, 16, 8);
+ check_struct_and_union3(long, long double, long long, 20, 8);
+ check_struct_and_union3(long, long double, float, 16, 8);
+ check_struct_and_union3(long, long double, double, 20, 8);
+ check_struct_and_union3(long, long double, long double, 20, 8);
+ check_struct_and_union3(long long, char, char, 12, 8);
+ check_struct_and_union3(long long, char, short, 12, 8);
+ check_struct_and_union3(long long, char, int, 16, 8);
+ check_struct_and_union3(long long, char, long, 16, 8);
+ check_struct_and_union3(long long, char, long long, 20, 8);
+ check_struct_and_union3(long long, char, float, 16, 8);
+ check_struct_and_union3(long long, char, double, 20, 8);
+ check_struct_and_union3(long long, char, long double, 20, 8);
+ check_struct_and_union3(long long, short, char, 12, 8);
+ check_struct_and_union3(long long, short, short, 12, 8);
+ check_struct_and_union3(long long, short, int, 16, 8);
+ check_struct_and_union3(long long, short, long, 16, 8);
+ check_struct_and_union3(long long, short, long long, 20, 8);
+ check_struct_and_union3(long long, short, float, 16, 8);
+ check_struct_and_union3(long long, short, double, 20, 8);
+ check_struct_and_union3(long long, short, long double, 20, 8);
+ check_struct_and_union3(long long, int, char, 16, 8);
+ check_struct_and_union3(long long, int, short, 16, 8);
+ check_struct_and_union3(long long, int, int, 16, 8);
+ check_struct_and_union3(long long, int, long, 16, 8);
+ check_struct_and_union3(long long, int, long long, 20, 8);
+ check_struct_and_union3(long long, int, float, 16, 8);
+ check_struct_and_union3(long long, int, double, 20, 8);
+ check_struct_and_union3(long long, int, long double, 20, 8);
+ check_struct_and_union3(long long, long, char, 16, 8);
+ check_struct_and_union3(long long, long, short, 16, 8);
+ check_struct_and_union3(long long, long, int, 16, 8);
+ check_struct_and_union3(long long, long, long, 16, 8);
+ check_struct_and_union3(long long, long, long long, 20, 8);
+ check_struct_and_union3(long long, long, float, 16, 8);
+ check_struct_and_union3(long long, long, double, 20, 8);
+ check_struct_and_union3(long long, long, long double, 20, 8);
+ check_struct_and_union3(long long, long long, char, 20, 8);
+ check_struct_and_union3(long long, long long, short, 20, 8);
+ check_struct_and_union3(long long, long long, int, 20, 8);
+ check_struct_and_union3(long long, long long, long, 20, 8);
+ check_struct_and_union3(long long, long long, long long, 24, 8);
+ check_struct_and_union3(long long, long long, float, 20, 8);
+ check_struct_and_union3(long long, long long, double, 24, 8);
+ check_struct_and_union3(long long, long long, long double, 24, 8);
+ check_struct_and_union3(long long, float, char, 16, 8);
+ check_struct_and_union3(long long, float, short, 16, 8);
+ check_struct_and_union3(long long, float, int, 16, 8);
+ check_struct_and_union3(long long, float, long, 16, 8);
+ check_struct_and_union3(long long, float, long long, 20, 8);
+ check_struct_and_union3(long long, float, float, 16, 8);
+ check_struct_and_union3(long long, float, double, 20, 8);
+ check_struct_and_union3(long long, float, long double, 20, 8);
+ check_struct_and_union3(long long, double, char, 20, 8);
+ check_struct_and_union3(long long, double, short, 20, 8);
+ check_struct_and_union3(long long, double, int, 20, 8);
+ check_struct_and_union3(long long, double, long, 20, 8);
+ check_struct_and_union3(long long, double, long long, 24, 8);
+ check_struct_and_union3(long long, double, float, 20, 8);
+ check_struct_and_union3(long long, double, double, 24, 8);
+ check_struct_and_union3(long long, double, long double, 24, 8);
+ check_struct_and_union3(long long, long double, char, 20, 8);
+ check_struct_and_union3(long long, long double, short, 20, 8);
+ check_struct_and_union3(long long, long double, int, 20, 8);
+ check_struct_and_union3(long long, long double, long, 20, 8);
+ check_struct_and_union3(long long, long double, long long, 24, 8);
+ check_struct_and_union3(long long, long double, float, 20, 8);
+ check_struct_and_union3(long long, long double, double, 24, 8);
+ check_struct_and_union3(long long, long double, long double, 24, 8);
+ check_struct_and_union3(float, char, char, 8, 4);
+ check_struct_and_union3(float, char, short, 8, 4);
+ check_struct_and_union3(float, char, int, 12, 4);
+ check_struct_and_union3(float, char, long, 12, 4);
+ check_struct_and_union3(float, char, long long, 16, 8);
+ check_struct_and_union3(float, char, float, 12, 4);
+ check_struct_and_union3(float, char, double, 16, 8);
+ check_struct_and_union3(float, char, long double, 16, 8);
+ check_struct_and_union3(float, short, char, 8, 4);
+ check_struct_and_union3(float, short, short, 8, 4);
+ check_struct_and_union3(float, short, int, 12, 4);
+ check_struct_and_union3(float, short, long, 12, 4);
+ check_struct_and_union3(float, short, long long, 16, 8);
+ check_struct_and_union3(float, short, float, 12, 4);
+ check_struct_and_union3(float, short, double, 16, 8);
+ check_struct_and_union3(float, short, long double, 16, 8);
+ check_struct_and_union3(float, int, char, 12, 4);
+ check_struct_and_union3(float, int, short, 12, 4);
+ check_struct_and_union3(float, int, int, 12, 4);
+ check_struct_and_union3(float, int, long, 12, 4);
+ check_struct_and_union3(float, int, long long, 16, 8);
+ check_struct_and_union3(float, int, float, 12, 4);
+ check_struct_and_union3(float, int, double, 16, 8);
+ check_struct_and_union3(float, int, long double, 16, 8);
+ check_struct_and_union3(float, long, char, 12, 4);
+ check_struct_and_union3(float, long, short, 12, 4);
+ check_struct_and_union3(float, long, int, 12, 4);
+ check_struct_and_union3(float, long, long, 12, 4);
+ check_struct_and_union3(float, long, long long, 16, 8);
+ check_struct_and_union3(float, long, float, 12, 4);
+ check_struct_and_union3(float, long, double, 16, 8);
+ check_struct_and_union3(float, long, long double, 16, 8);
+ check_struct_and_union3(float, long long, char, 16, 8);
+ check_struct_and_union3(float, long long, short, 16, 8);
+ check_struct_and_union3(float, long long, int, 16, 8);
+ check_struct_and_union3(float, long long, long, 16, 8);
+ check_struct_and_union3(float, long long, long long, 20, 8);
+ check_struct_and_union3(float, long long, float, 16, 8);
+ check_struct_and_union3(float, long long, double, 20, 8);
+ check_struct_and_union3(float, long long, long double, 20, 8);
+ check_struct_and_union3(float, float, char, 12, 4);
+ check_struct_and_union3(float, float, short, 12, 4);
+ check_struct_and_union3(float, float, int, 12, 4);
+ check_struct_and_union3(float, float, long, 12, 4);
+ check_struct_and_union3(float, float, long long, 16, 8);
+ check_struct_and_union3(float, float, float, 12, 4);
+ check_struct_and_union3(float, float, double, 16, 8);
+ check_struct_and_union3(float, float, long double, 16, 8);
+ check_struct_and_union3(float, double, char, 16, 8);
+ check_struct_and_union3(float, double, short, 16, 8);
+ check_struct_and_union3(float, double, int, 16, 8);
+ check_struct_and_union3(float, double, long, 16, 8);
+ check_struct_and_union3(float, double, long long, 20, 8);
+ check_struct_and_union3(float, double, float, 16, 8);
+ check_struct_and_union3(float, double, double, 20, 8);
+ check_struct_and_union3(float, double, long double, 20, 8);
+ check_struct_and_union3(float, long double, char, 16, 8);
+ check_struct_and_union3(float, long double, short, 16, 8);
+ check_struct_and_union3(float, long double, int, 16, 8);
+ check_struct_and_union3(float, long double, long, 16, 8);
+ check_struct_and_union3(float, long double, long long, 20, 8);
+ check_struct_and_union3(float, long double, float, 16, 8);
+ check_struct_and_union3(float, long double, double, 20, 8);
+ check_struct_and_union3(float, long double, long double, 20, 8);
+ check_struct_and_union3(double, char, char, 12, 8);
+ check_struct_and_union3(double, char, short, 12, 8);
+ check_struct_and_union3(double, char, int, 16, 8);
+ check_struct_and_union3(double, char, long, 16, 8);
+ check_struct_and_union3(double, char, long long, 20, 8);
+ check_struct_and_union3(double, char, float, 16, 8);
+ check_struct_and_union3(double, char, double, 20, 8);
+ check_struct_and_union3(double, char, long double, 20, 8);
+ check_struct_and_union3(double, short, char, 12, 8);
+ check_struct_and_union3(double, short, short, 12, 8);
+ check_struct_and_union3(double, short, int, 16, 8);
+ check_struct_and_union3(double, short, long, 16, 8);
+ check_struct_and_union3(double, short, long long, 20, 8);
+ check_struct_and_union3(double, short, float, 16, 8);
+ check_struct_and_union3(double, short, double, 20, 8);
+ check_struct_and_union3(double, short, long double, 20, 8);
+ check_struct_and_union3(double, int, char, 16, 8);
+ check_struct_and_union3(double, int, short, 16, 8);
+ check_struct_and_union3(double, int, int, 16, 8);
+ check_struct_and_union3(double, int, long, 16, 8);
+ check_struct_and_union3(double, int, long long, 20, 8);
+ check_struct_and_union3(double, int, float, 16, 8);
+ check_struct_and_union3(double, int, double, 20, 8);
+ check_struct_and_union3(double, int, long double, 20, 8);
+ check_struct_and_union3(double, long, char, 16, 8);
+ check_struct_and_union3(double, long, short, 16, 8);
+ check_struct_and_union3(double, long, int, 16, 8);
+ check_struct_and_union3(double, long, long, 16, 8);
+ check_struct_and_union3(double, long, long long, 20, 8);
+ check_struct_and_union3(double, long, float, 16, 8);
+ check_struct_and_union3(double, long, double, 20, 8);
+ check_struct_and_union3(double, long, long double, 20, 8);
+ check_struct_and_union3(double, long long, char, 20, 8);
+ check_struct_and_union3(double, long long, short, 20, 8);
+ check_struct_and_union3(double, long long, int, 20, 8);
+ check_struct_and_union3(double, long long, long, 20, 8);
+ check_struct_and_union3(double, long long, long long, 24, 8);
+ check_struct_and_union3(double, long long, float, 20, 8);
+ check_struct_and_union3(double, long long, double, 24, 8);
+ check_struct_and_union3(double, long long, long double, 24, 8);
+ check_struct_and_union3(double, float, char, 16, 8);
+ check_struct_and_union3(double, float, short, 16, 8);
+ check_struct_and_union3(double, float, int, 16, 8);
+ check_struct_and_union3(double, float, long, 16, 8);
+ check_struct_and_union3(double, float, long long, 20, 8);
+ check_struct_and_union3(double, float, float, 16, 8);
+ check_struct_and_union3(double, float, double, 20, 8);
+ check_struct_and_union3(double, float, long double, 20, 8);
+ check_struct_and_union3(double, double, char, 20, 8);
+ check_struct_and_union3(double, double, short, 20, 8);
+ check_struct_and_union3(double, double, int, 20, 8);
+ check_struct_and_union3(double, double, long, 20, 8);
+ check_struct_and_union3(double, double, long long, 24, 8);
+ check_struct_and_union3(double, double, float, 20, 8);
+ check_struct_and_union3(double, double, double, 24, 8);
+ check_struct_and_union3(double, double, long double, 24, 8);
+ check_struct_and_union3(double, long double, char, 20, 8);
+ check_struct_and_union3(double, long double, short, 20, 8);
+ check_struct_and_union3(double, long double, int, 20, 8);
+ check_struct_and_union3(double, long double, long, 20, 8);
+ check_struct_and_union3(double, long double, long long, 24, 8);
+ check_struct_and_union3(double, long double, float, 20, 8);
+ check_struct_and_union3(double, long double, double, 24, 8);
+ check_struct_and_union3(double, long double, long double, 24, 8);
+ check_struct_and_union3(long double, char, char, 12, 8);
+ check_struct_and_union3(long double, char, short, 12, 8);
+ check_struct_and_union3(long double, char, int, 16, 8);
+ check_struct_and_union3(long double, char, long, 16, 8);
+ check_struct_and_union3(long double, char, long long, 20, 8);
+ check_struct_and_union3(long double, char, float, 16, 8);
+ check_struct_and_union3(long double, char, double, 20, 8);
+ check_struct_and_union3(long double, char, long double, 20, 8);
+ check_struct_and_union3(long double, short, char, 12, 8);
+ check_struct_and_union3(long double, short, short, 12, 8);
+ check_struct_and_union3(long double, short, int, 16, 8);
+ check_struct_and_union3(long double, short, long, 16, 8);
+ check_struct_and_union3(long double, short, long long, 20, 8);
+ check_struct_and_union3(long double, short, float, 16, 8);
+ check_struct_and_union3(long double, short, double, 20, 8);
+ check_struct_and_union3(long double, short, long double, 20, 8);
+ check_struct_and_union3(long double, int, char, 16, 8);
+ check_struct_and_union3(long double, int, short, 16, 8);
+ check_struct_and_union3(long double, int, int, 16, 8);
+ check_struct_and_union3(long double, int, long, 16, 8);
+ check_struct_and_union3(long double, int, long long, 20, 8);
+ check_struct_and_union3(long double, int, float, 16, 8);
+ check_struct_and_union3(long double, int, double, 20, 8);
+ check_struct_and_union3(long double, int, long double, 20, 8);
+ check_struct_and_union3(long double, long, char, 16, 8);
+ check_struct_and_union3(long double, long, short, 16, 8);
+ check_struct_and_union3(long double, long, int, 16, 8);
+ check_struct_and_union3(long double, long, long, 16, 8);
+ check_struct_and_union3(long double, long, long long, 20, 8);
+ check_struct_and_union3(long double, long, float, 16, 8);
+ check_struct_and_union3(long double, long, double, 20, 8);
+ check_struct_and_union3(long double, long, long double, 20, 8);
+ check_struct_and_union3(long double, long long, char, 20, 8);
+ check_struct_and_union3(long double, long long, short, 20, 8);
+ check_struct_and_union3(long double, long long, int, 20, 8);
+ check_struct_and_union3(long double, long long, long, 20, 8);
+ check_struct_and_union3(long double, long long, long long, 24, 8);
+ check_struct_and_union3(long double, long long, float, 20, 8);
+ check_struct_and_union3(long double, long long, double, 24, 8);
+ check_struct_and_union3(long double, long long, long double, 24, 8);
+ check_struct_and_union3(long double, float, char, 16, 8);
+ check_struct_and_union3(long double, float, short, 16, 8);
+ check_struct_and_union3(long double, float, int, 16, 8);
+ check_struct_and_union3(long double, float, long, 16, 8);
+ check_struct_and_union3(long double, float, long long, 20, 8);
+ check_struct_and_union3(long double, float, float, 16, 8);
+ check_struct_and_union3(long double, float, double, 20, 8);
+ check_struct_and_union3(long double, float, long double, 20, 8);
+ check_struct_and_union3(long double, double, char, 20, 8);
+ check_struct_and_union3(long double, double, short, 20, 8);
+ check_struct_and_union3(long double, double, int, 20, 8);
+ check_struct_and_union3(long double, double, long, 20, 8);
+ check_struct_and_union3(long double, double, long long, 24, 8);
+ check_struct_and_union3(long double, double, float, 20, 8);
+ check_struct_and_union3(long double, double, double, 24, 8);
+ check_struct_and_union3(long double, double, long double, 24, 8);
+ check_struct_and_union3(long double, long double, char, 20, 8);
+ check_struct_and_union3(long double, long double, short, 20, 8);
+ check_struct_and_union3(long double, long double, int, 20, 8);
+ check_struct_and_union3(long double, long double, long, 20, 8);
+ check_struct_and_union3(long double, long double, long long, 24, 8);
+ check_struct_and_union3(long double, long double, float, 20, 8);
+ check_struct_and_union3(long double, long double, double, 24, 8);
+ check_struct_and_union3(long double, long double, long double, 24, 8);
+ return 0;
+}