+2001-02-12 Geoffrey Keating <geoffk@redhat.com>
+
+ * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle
+ -mcall-i960.
+ (ASM_SPEC): Likewise.
+ (CC1_ENDIAN_LITTLE_SPEC): Likewise.
+ (CC1_SPEC): Likewise.
+ (LINK_TARGET_SPEC): Likewise.
+ (CPP_ENDIAN_SPEC): Likewise.
+ * Makefile.in (check-consistency): New target.
+
2001-02-12 Joseph S. Myers <jsm28@cam.ac.uk>
* c-decl.c (grokdeclarator): In C99 mode, give the more specific
$(MAKE) -C po check-po; \
fi
+check-consistency: testsuite/site.exp
+ -rootme=`pwd`; export rootme; \
+ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \
+ cd testsuite; \
+ EXPECT=${EXPECT} ; export EXPECT ; \
+ if [ -f $${rootme}/../expect/expect ] ; then \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \
+ export TCL_LIBRARY ; fi ; \
+ $(RUNTEST) --tool consistency $(RUNTESTFLAGS)
+
# These exist for maintenance purposes.
# Update the tags table.
rs6000_current_abi = ABI_V4; \
else if (!strcmp (rs6000_abi_name, "solaris")) \
rs6000_current_abi = ABI_SOLARIS; \
+ else if (!strcmp (rs6000_abi_name, "i960-old")) \
+ { \
+ rs6000_current_abi = ABI_V4; \
+ target_flags |= (MASK_LITTLE_ENDIAN | MASK_EABI \
+ | MASK_NO_BITFIELD_WORD); \
+ target_flags &= ~MASK_STRICT_ALIGN; \
+ } \
else \
{ \
rs6000_current_abi = ABI_V4; \
%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
%{mcall-solaris: -mlittle -msolaris} \
+ %{mcall-i960-old: -mlittle} \
%{mcall-linux: -mbig} }}}}"
#define CC1_ENDIAN_BIG_SPEC ""
#define CC1_ENDIAN_LITTLE_SPEC "\
%{!mstrict-align: %{!mno-strict-align: \
+ %{!mcall-i960-old: \
-mstrict-align \
+ } \
}}"
#define CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_big_spec)"
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
%{mcall-aixdesc: -mbig %(cc1_endian_big) } \
%{mcall-solaris: -mlittle %(cc1_endian_little) } \
+ %{mcall-i960-old: -mlittle %(cc1_endian_little) } \
%{mcall-linux: -mbig %(cc1_endian_big) } \
- %{!mcall-aixdesc: %{!mcall-solaris: %{!mcall-linux: \
+ %{!mcall-aixdesc: %{!mcall-solaris: %{!mcall-i960-old: %{!mcall-linux: \
%(cc1_endian_default) \
- }}} \
+ }}}} \
}}}} \
%{mcall-solaris: -mregnames } \
%{mno-sdata: -msdata=none } \
%{!meabi: %{!mno-eabi: \
%{mrelocatable: -meabi } \
%{mcall-solaris: -mno-eabi } \
+ %{mcall-i960-old: -meabi } \
%{mcall-linux: -mno-eabi }}} \
%{msdata: -msdata=default} \
%{mno-sdata: -msdata=none} \
#define LINK_TARGET_SPEC "\
%{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat elf32-powerpcle } \
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
+ %{mcall-i960-old: --oformat elf32-powerpcle} \
%{mcall-solaris: --oformat elf32-powerpcle} \
}}}}"
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
%{mcall-solaris: %(cpp_endian_solaris) } \
%{mcall-linux: %(cpp_endian_big) } \
+ %{mcall-i960-old: %(cpp_endian_little) } \
%{mcall-aixdesc: %(cpp_endian_big) } \
%{!mcall-solaris: %{!mcall-linux: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}"
+2001-02-12 Geoffrey Keating <geoffk@redhat.com>
+
+ * consistency.vlad: New directory, 1665 files.
+
2001-02-12 Joseph S. Myers <jsm28@cam.ac.uk>
* gcc.dg/c99-impl-int-1.c: Use stricter error string for implicit
--- /dev/null
+ This directory contains tests and scripts for consistency checking
+compilers. They could be used for consistency checking different
+C/C++ compiler for one platform or C/C++ compilers for different
+platforms.
+
+ For example, to check the consistency, you could type
+
+ make check-consistency RUNTESTFLAGS='BASE_COMPILER=i960-97r2 CONSISTENCY_OPTIONS="-O2 -fvtable-thunks -mno-strict-align -fno-rtti -fcheck-new -mcall-i960-old -mlittle-endian" NO_LONG_DOUBLE=1 NO_LIBGLOSS_LIBRARY_OPTIONS=1'
+
+ In this example, DEJAGNU driver vlad.exp will process all C/C++
+tests in all subdirectories (e.g. layout) started with lower case
+letter. C tests (with suffixes .c) will be compiled by C compiler
+only. C++ tests will be compiled by C and C++ compilers. It is
+supposed that each test outputs the result which is saved in temp_dir
+as
+ <basename of the test>.out
+or
+ <basename of the test>.out++
+
+correspondingly for C compiler and C++ compiler. For example, there
+will be two output files
+
+ `align-double.out' and `align-double.out++'
+
+for test `align-double.c'.
+
+ After this if there is subdirectory <BASE_COMPILER>-results
+(`i960-97r2-results' in our example) and there is corresponding saved
+output file for the base compiler the the files are compared in order
+to check consistency.
+
+ To create the base for future comparisons of output files, you
+should create the directory and move output files from the temporary
+directory into the created directory.
+
+The test script file has the following parameters
+
+ 1. BASE_COMPILER. The variable must be defined for work the script
+ properly.
+
+ 2. CONSISTENCY_OPTIONS. The options which will be used for
+ compilations. The default value is "-O2".
+
+ 3. NO_LONG_DOUBLE. If the variable value is not zero, the tests
+ which contain long double are expected to be fail.
+
+ 4. NO_LIBGLOSS_LIBRARY_OPTIONS. If the variable value is not zero,
+ the tests are compiled without standard dejagnu libgloss library
+ paths.
+
+ Currently, there is directory `layout' for checking allocation
+parameters of C/C++ compiler and subdirectory i960-97r2 which contains
+the test results for 97r2 i960-vxworks C/C++ compiler.
+
+ You can create other consistency tests. Simply, create a directory
+started with lower case letter, place the tests and create the
+subdirectory with the test results for a base compiler. If you need
+to compile tests in a directory with a wrap file simply place the file
+name (e.g. _dummy_stab.S) in file WRAP_FILE in the test directory.
+
+ The tests will be only compiled (and the test results will not be
+compared) if you place <basename of the test>.conly in the directory
+of the test. You can use own driver for checking consistency. To
+make this, place the TCL script with name <basename of the test>.cexp.
+
+Vladimir Makarov <vmakarov@cygnus.com>
--- /dev/null
+#include <stdio.h>
+
+static char a [10];
+static char e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array char:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static double a [10];
+static double e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array double:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static float a [10];
+static float e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array float:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static int a [10];
+static int e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array int:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long a [10];
+static long e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array long:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long double a [10];
+static long double e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array longdouble:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long long a [10];
+static long long e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array longlong:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with char:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with double:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with float:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with int:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with long:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with longdouble:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with longlong:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with pointer:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with ptrdiff_t:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+} a[10];
+
+int main (void) {
+ printf ("++++Array of struct with short:\n");
+ printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
+ sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static char * a [10];
+static char * e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array pointer:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static ptrdiff_t a [10];
+static ptrdiff_t e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array ptrdiff_t:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static short a [10];
+static short e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array short:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static size_t a [10];
+static size_t e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array size_t:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static wchar_t a [10];
+static wchar_t e [0]; /* GCC only */
+
+int main (void) {
+ printf ("+++Array wchar_t:\n");
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (a), __alignof__ (a),
+ (char *) &a[5] - (char *) a, __alignof__ (a[5]));
+ printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
+ sizeof (e), __alignof__ (e),
+ (char *) &e[5] - (char *) a, __alignof__ (e[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static bool bbb;
+
+int main(void)
+{
+ printf ("+++Bool alignment:\n");
+ printf ("%d\n", __alignof__ (bbb));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static char ccc;
+
+int main(void)
+{
+ printf ("+++Char alignment:\n");
+ printf ("%d\n", __alignof__ (ccc));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static double d;
+
+int main(void)
+{
+ printf ("+++Double alignment:\n");
+ printf ("%d\n", __alignof__ (d));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static float f;
+
+int main(void)
+{
+ printf ("+++Float alignment:\n");
+ printf ("%d\n", __alignof__ (f));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static int i;
+
+int main(void)
+{
+ printf ("+++Int alignment:\n");
+ printf ("%d\n", __alignof__ (i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long lll;
+
+int main(void)
+{
+ printf ("+++Long alignment:\n");
+ printf ("%d\n", __alignof__ (lll));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long double ld;
+
+int main(void)
+{
+ printf ("+++Long Double alignment:\n");
+ printf ("%d\n", __alignof__ (ld));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long long ll;
+
+int main(void)
+{
+ printf ("+++Long long alignment:\n");
+ printf ("%d\n", __alignof__ (ll));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static char *p;
+
+int main(void)
+{
+ printf ("+++Pointer alignment:\n");
+ printf ("%d\n", __alignof__ (p));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static ptrdiff_t pd;
+
+int main(void)
+{
+ printf ("+++ptrdiff_t alignment:\n");
+ printf ("%d\n", __alignof__ (pd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static short sss;
+
+int main(void)
+{
+ printf ("+++Short alignment:\n");
+ printf ("%d\n", __alignof__ (sss));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static size_t sss;
+
+int main(void)
+{
+ printf ("+++size_t alignment:\n");
+ printf ("%d\n", __alignof__ (sss));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static wchar_t w;
+
+int main(void)
+{
+ printf ("+++wchar_t alignment:\n");
+ printf ("%d\n", __alignof__ (w));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct {char m;} s0;
+static struct {short m;} s1;
+static struct {int m;} s2;
+static struct {long m;} s3;
+static struct {long long m;} s4;
+static struct {char * m;} s5;
+static struct {float m;} s6;
+static struct {double m;} s7;
+static struct {long double m;} s8;
+static struct {ptrdiff_t m;} s9;
+static struct {size_t m;} s10;
+static struct {wchar_t m;} s11;
+static struct {struct {char m;}m;} s12;
+static struct {struct {short m;}m;} s13;
+static struct {struct {int m;}m;} s14;
+static struct {struct {long m;}m;} s15;
+static struct {struct {long long m;}m;} s16;
+static struct {struct {char * m;}m;} s17;
+static struct {struct {float m;}m;} s18;
+static struct {struct {double m;}m;} s19;
+static struct {struct {long double m;}m;} s20;
+static struct {struct {ptrdiff_t m;}m;} s21;
+static struct {struct {size_t m;}m;} s22;
+static struct {struct {wchar_t m;}m;} s23;
+static struct {char m [10];} s24;
+static struct {short m [10];} s25;
+static struct {int m [10];} s26;
+static struct {long m [10];} s27;
+static struct {long long m [10];} s28;
+static struct {char * m [10];} s29;
+static struct {float m [10];} s30;
+static struct {double m [10];} s31;
+static struct {long double m [10];} s32;
+static struct {ptrdiff_t m [10];} s33;
+static struct {size_t m [10];} s34;
+static struct {wchar_t m [10];} s35;
+static struct {int :0; char m;} s36;
+static struct {int :0; short m;} s37;
+static struct {int :0; int m;} s38;
+static struct {int :0; long m;} s39;
+static struct {int :0; long long m;} s40;
+static struct {int :0; char * m;} s41;
+static struct {int :0; float m;} s42;
+static struct {int :0; double m;} s43;
+static struct {int :0; long double m;} s44;
+static struct {int :0; ptrdiff_t m;} s45;
+static struct {int :0; size_t m;} s46;
+static struct {int :0; wchar_t m;} s47;
+int main (void) {
+ int max_align = 0;
+ printf ("+++Biggest field alignment:\n");
+ if (max_align < __alignof__ (s0.m))
+ max_align = __alignof__ (s0.m);
+ if (max_align < __alignof__ (s1.m))
+ max_align = __alignof__ (s1.m);
+ if (max_align < __alignof__ (s2.m))
+ max_align = __alignof__ (s2.m);
+ if (max_align < __alignof__ (s3.m))
+ max_align = __alignof__ (s3.m);
+ if (max_align < __alignof__ (s4.m))
+ max_align = __alignof__ (s4.m);
+ if (max_align < __alignof__ (s5.m))
+ max_align = __alignof__ (s5.m);
+ if (max_align < __alignof__ (s6.m))
+ max_align = __alignof__ (s6.m);
+ if (max_align < __alignof__ (s7.m))
+ max_align = __alignof__ (s7.m);
+ if (max_align < __alignof__ (s8.m))
+ max_align = __alignof__ (s8.m);
+ if (max_align < __alignof__ (s9.m))
+ max_align = __alignof__ (s9.m);
+ if (max_align < __alignof__ (s10.m))
+ max_align = __alignof__ (s10.m);
+ if (max_align < __alignof__ (s11.m))
+ max_align = __alignof__ (s11.m);
+ if (max_align < __alignof__ (s12.m))
+ max_align = __alignof__ (s12.m);
+ if (max_align < __alignof__ (s13.m))
+ max_align = __alignof__ (s13.m);
+ if (max_align < __alignof__ (s14.m))
+ max_align = __alignof__ (s14.m);
+ if (max_align < __alignof__ (s15.m))
+ max_align = __alignof__ (s15.m);
+ if (max_align < __alignof__ (s16.m))
+ max_align = __alignof__ (s16.m);
+ if (max_align < __alignof__ (s17.m))
+ max_align = __alignof__ (s17.m);
+ if (max_align < __alignof__ (s18.m))
+ max_align = __alignof__ (s18.m);
+ if (max_align < __alignof__ (s19.m))
+ max_align = __alignof__ (s19.m);
+ if (max_align < __alignof__ (s20.m))
+ max_align = __alignof__ (s20.m);
+ if (max_align < __alignof__ (s21.m))
+ max_align = __alignof__ (s21.m);
+ if (max_align < __alignof__ (s22.m))
+ max_align = __alignof__ (s22.m);
+ if (max_align < __alignof__ (s23.m))
+ max_align = __alignof__ (s23.m);
+ if (max_align < __alignof__ (s24.m))
+ max_align = __alignof__ (s24.m);
+ if (max_align < __alignof__ (s25.m))
+ max_align = __alignof__ (s25.m);
+ if (max_align < __alignof__ (s26.m))
+ max_align = __alignof__ (s26.m);
+ if (max_align < __alignof__ (s27.m))
+ max_align = __alignof__ (s27.m);
+ if (max_align < __alignof__ (s28.m))
+ max_align = __alignof__ (s28.m);
+ if (max_align < __alignof__ (s29.m))
+ max_align = __alignof__ (s29.m);
+ if (max_align < __alignof__ (s30.m))
+ max_align = __alignof__ (s30.m);
+ if (max_align < __alignof__ (s31.m))
+ max_align = __alignof__ (s31.m);
+ if (max_align < __alignof__ (s32.m))
+ max_align = __alignof__ (s32.m);
+ if (max_align < __alignof__ (s33.m))
+ max_align = __alignof__ (s33.m);
+ if (max_align < __alignof__ (s34.m))
+ max_align = __alignof__ (s34.m);
+ if (max_align < __alignof__ (s35.m))
+ max_align = __alignof__ (s35.m);
+ if (max_align < __alignof__ (s36.m))
+ max_align = __alignof__ (s36.m);
+ if (max_align < __alignof__ (s37.m))
+ max_align = __alignof__ (s37.m);
+ if (max_align < __alignof__ (s38.m))
+ max_align = __alignof__ (s38.m);
+ if (max_align < __alignof__ (s39.m))
+ max_align = __alignof__ (s39.m);
+ if (max_align < __alignof__ (s40.m))
+ max_align = __alignof__ (s40.m);
+ if (max_align < __alignof__ (s41.m))
+ max_align = __alignof__ (s41.m);
+ if (max_align < __alignof__ (s42.m))
+ max_align = __alignof__ (s42.m);
+ if (max_align < __alignof__ (s43.m))
+ max_align = __alignof__ (s43.m);
+ if (max_align < __alignof__ (s44.m))
+ max_align = __alignof__ (s44.m);
+ if (max_align < __alignof__ (s45.m))
+ max_align = __alignof__ (s45.m);
+ if (max_align < __alignof__ (s46.m))
+ max_align = __alignof__ (s46.m);
+ if (max_align < __alignof__ (s47.m))
+ max_align = __alignof__ (s47.m);
+ printf ("max field align=%d\n", max_align);
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-char=%d,\nalign-char=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-double=%d,\nalign-char=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-float=%d,\nalign-char=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-int=%d,\nalign-char=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-long=%d,\nalign-char=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-longdouble=%d,\nalign-char=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-longlong=%d,\nalign-char=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-pointer=%d,\nalign-char=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-short=%d,\nalign-char=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting classes with char & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-char=%d,\nalign-double=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-double=%d,\nalign-double=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-float=%d,\nalign-double=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-int=%d,\nalign-double=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-long=%d,\nalign-double=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-longdouble=%d,\nalign-double=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-longlong=%d,\nalign-double=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-pointer=%d,\nalign-double=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-short=%d,\nalign-double=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ double f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting classes with double & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-char=%d,\nalign-float=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-double=%d,\nalign-float=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-float=%d,\nalign-float=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-int=%d,\nalign-float=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-long=%d,\nalign-float=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-longdouble=%d,\nalign-float=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-longlong=%d,\nalign-float=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-pointer=%d,\nalign-float=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-short=%d,\nalign-float=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
+
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ float f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting classes with float & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-char=%d,\nalign-int=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-double=%d,\nalign-int=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-float=%d,\nalign-int=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-int=%d,\nalign-int=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-long=%d,\nalign-int=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-longdouble=%d,\nalign-int=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-longlong=%d,\nalign-int=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-pointer=%d,\nalign-int=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-short=%d,\nalign-int=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ int f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting classes with int & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-char=%d,\nalign-long=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-double=%d,\nalign-long=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-float=%d,\nalign-long=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-int=%d,\nalign-long=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-long=%d,\nalign-long=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-longdouble=%d,\nalign-long=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-longlong=%d,\nalign-long=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-pointer=%d,\nalign-long=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-short=%d,\nalign-long=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting classes with long & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-char=%d,\nalign-longdouble=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-double=%d,\nalign-longdouble=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-float=%d,\nalign-longdouble=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-int=%d,\nalign-longdouble=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-long=%d,\nalign-longdouble=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-longdouble=%d,\nalign-longdouble=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-longlong=%d,\nalign-longdouble=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-pointer=%d,\nalign-longdouble=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-short=%d,\nalign-longdouble=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long double f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting classes with longdouble & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-char=%d,\nalign-longlong=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-double=%d,\nalign-longlong=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-float=%d,\nalign-longlong=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-int=%d,\nalign-longlong=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-long=%d,\nalign-longlong=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-longdouble=%d,\nalign-longlong=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-longlong=%d,\nalign-longlong=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-pointer=%d,\nalign-longlong=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-short=%d,\nalign-longlong=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ long long f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting classes with longlong & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-char=%d,\nalign-pointer=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-double=%d,\nalign-pointer=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-float=%d,\nalign-pointer=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-int=%d,\nalign-pointer=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-long=%d,\nalign-pointer=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-longdouble=%d,\nalign-pointer=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-longlong=%d,\nalign-pointer=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-pointer=%d,\nalign-pointer=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-short=%d,\nalign-pointer=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ char * f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting classes with pointer & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ char m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with char inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-char=%d,\nalign-short=%d,align-char=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with double inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-double=%d,\nalign-short=%d,align-double=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ float m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with float inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-float=%d,\nalign-short=%d,align-float=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ int m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with int inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-int=%d,\nalign-short=%d,align-int=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with long inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-long=%d,\nalign-short=%d,align-long=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ long double m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longdouble inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-longdouble=%d,\nalign-short=%d,align-longdouble=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ long long m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with longlong inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-longlong=%d,\nalign-short=%d,align-longlong=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ char * m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with pointer inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-pointer=%d,\nalign-short=%d,align-pointer=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+
+static class sss: public c{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting class with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-short=%d,\nalign-short=%d,align-short=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ char f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ float f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ int f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ long double f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ long long f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ char * f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+class c{
+public:
+ short f;
+};
+
+class c2{
+public:
+ short f2;
+};
+
+
+static class sss: public c, public c2{
+public:
+ short m;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++Class with short inhereting classes with short & short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
+ _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
+ __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ char m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with char and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ double m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with double and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ float m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with float and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ int m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with int and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ long m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with long and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ long double m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with longdouble and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ long long m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with longlong and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ char * m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with pointer and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static class sss {
+public:
+ short m;
+ virtual int f (int i) {return i;}
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Class starting with short and containing virtual function:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-m=%d,align-m=%d\n",
+ _offsetof (class sss, m), __alignof__ (sss.m));
+}
--- /dev/null
+#include <stdio.h>
+
+static int w[2];
+static char * bytes;
+
+int main(void)
+{
+ printf ("+++Endian test:\n");
+ if (sizeof (int) == 2)
+ {
+ w[0] = 0x4142;
+ w[1] = 0;
+ bytes = (char *) w;
+ if (strcmp(bytes, "AB") == 0)
+ printf ("big endian\n");
+ else if (strcmp(bytes, "BA") == 0)
+ printf ("little endian\n");
+ else
+ {
+ printf ("nor big nor little endian\n");
+ return 1;
+ }
+ }
+ else if (sizeof (int) == 4)
+ {
+ w[0] = 0x41424344;
+ w[1] = 0;
+ bytes = (char *) w;
+ if (strcmp(bytes, "ABCD") == 0)
+ printf ("big endian\n");
+ else if (strcmp(bytes, "DCBA") == 0)
+ printf ("little endian\n");
+ else
+ {
+ printf ("nor big nor little endian\n");
+ return 1;
+ }
+ }
+ else
+ {
+ printf ("unexpected size of int\n");
+ return 1;
+ }
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int :0;
+ int :0;
+ int i3:5;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i3 = 31.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int :0;
+ int i2:20;
+ int i3:17;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i2 = 1048575.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int :0;
+ int i2:24;
+ int i3:24;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i2 = 16777215.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 16777215.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:1;
+ int i2:21;
+ int i3:31;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 2097151.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 2147483647.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:1;
+ int i2:3;
+ int i3:1;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 7.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:10;
+ int i2:11;
+ int i3:10;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1023.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 2047.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1023.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:11;
+ int i2:12;
+ int i3:10;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2047.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 4095.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1023.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:14;
+ int i2:22;
+ int i3:10;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 4194303.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1023.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:14;
+ int i2:29;
+ int i3:30;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 536870911.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1073741823.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:14;
+ int i2:31;
+ int i3:26;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 2147483647.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 67108863.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:14;
+ int i2:8;
+ int i3:9;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 255.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 511.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:15;
+ int i2:1;
+ int i3:22;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 32767.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 1.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 4194303.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:16;
+ int i2:30;
+ int i3:15;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 65535.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 1073741823.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 32767.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:17;
+ int i2:17;
+ int i3:2;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 3.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:17;
+ int i2:17;
+ int i3:20;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1048575.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:17;
+ int i2:21;
+ int i3:17;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 2097151.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:18;
+ int i2:15;
+ int i3:30;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 262143.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 32767.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1073741823.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:18;
+ int i2:26;
+ int :0;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 262143.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 67108863.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:18;
+ int i2:26;
+ int i3:11;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 262143.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 67108863.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 2047.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:18;
+ int i2:4;
+ int i3:17;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 262143.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 15.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:18;
+ int i2:5;
+ int i3:16;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 262143.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 31.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 65535.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:19;
+ int i2:6;
+ int i3:22;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 524287.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 63.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 4194303.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:2;
+ int i2:25;
+ int i3:27;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 3.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 33554431.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 134217727.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:20;
+ int i2:19;
+ int i3:9;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1048575.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 524287.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 511.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:20;
+ int i2:20;
+ int i3:15;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1048575.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 1048575.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 32767.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:20;
+ int i2:26;
+ int i3:14;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1048575.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 67108863.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:21;
+ int i2:16;
+ int i3:24;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2097151.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 65535.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 16777215.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:21;
+ int i2:19;
+ int i3:4;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2097151.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 524287.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 15.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:21;
+ int i2:22;
+ int i3:1;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2097151.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 4194303.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:21;
+ int i2:24;
+ int i3:20;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2097151.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 16777215.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1048575.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:21;
+ int i2:5;
+ int i3:26;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2097151.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 31.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 67108863.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:22;
+ int i2:2;
+ int i3:19;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 4194303.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 3.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 524287.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:22;
+ int i2:2;
+ int i3:28;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 4194303.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 3.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 268435455.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:23;
+ int i2:17;
+ int i3:8;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 8388607.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 131071.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 255.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:24;
+ int i2:18;
+ int i3:9;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 16777215.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 262143.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 511.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:24;
+ int i2:27;
+ int i3:8;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 16777215.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 134217727.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 255.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:25;
+ int i2:6;
+ int i3:23;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 33554431.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 63.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 8388607.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:26;
+ int i2:8;
+ int i3:6;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 67108863.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 255.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 63.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:27;
+ int i2:22;
+ int i3:7;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 134217727.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 4194303.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 127.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:29;
+ int i2:16;
+ int i3:7;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 536870911.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 65535.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 127.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:29;
+ int i2:4;
+ int i3:10;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 536870911.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 15.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1023.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:3;
+ int i2:7;
+ int i3:1;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 7.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 127.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:30;
+ int i2:15;
+ int i3:26;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1073741823.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 32767.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 67108863.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:30;
+ int i2:24;
+ int i3:30;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 1073741823.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 16777215.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 1073741823.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:31;
+ int i2:28;
+ int i3:16;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2147483647.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 268435455.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 65535.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:31;
+ int i2:4;
+ int i3:14;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2147483647.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 15.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:31;
+ int i2:9;
+ int :0;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 2147483647.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 511.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:4;
+ int i2:14;
+ int i3:29;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 15.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 536870911.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:5;
+ int i2:23;
+ int i3:7;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 31.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 8388607.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 127.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+struct sss{
+ int i1:7;
+ int i2:14;
+ int i3:12;
+};
+
+static union u{
+ struct sss sss;
+ unsigned char a[sizeof (struct sss)];
+} u;
+
+int main (void) {
+ int i;
+ for (i = 0; i < sizeof (struct sss); i++)
+ u.a[i] = 0;
+ u.sss.i1 = 127.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i2 = 16383.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ u.sss.i3 = 4095.0;
+ for (i = 0; i < sizeof (struct sss); i++)
+ printf ("%x ", u.a[i]);
+ printf ("\n");
+ return 0;
+}
--- /dev/null
+ This directory contains layout test results for 97r2 i960-vxworks
+compiler used with options
+
+-O2 -fvtable-thunks -mno-strict-align -fno-rtti -fcheck-new-mca
+-mold-align -mno-leaf-procedures
+
--- /dev/null
++++Array char:
+size=10,align=1,5th-elem-offset=5,5th-elem-align=1
+size=0,align=1,5th-elem-offset=15,5th-elem-align=1
--- /dev/null
++++Array char:
+size=10,align=1,5th-elem-offset=5,5th-elem-align=1
+size=0,align=1,5th-elem-offset=15,5th-elem-align=1
--- /dev/null
++++Array double:
+size=80,align=8,5th-elem-offset=40,5th-elem-align=8
+size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- /dev/null
++++Array double:
+size=80,align=8,5th-elem-offset=40,5th-elem-align=8
+size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- /dev/null
++++Array float:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array float:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array int:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array int:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array long:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array long:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array longdouble:
+size=160,align=16,5th-elem-offset=80,5th-elem-align=16
+size=0,align=16,5th-elem-offset=240,5th-elem-align=16
--- /dev/null
++++Array longdouble:
+size=160,align=16,5th-elem-offset=80,5th-elem-align=16
+size=0,align=16,5th-elem-offset=240,5th-elem-align=16
--- /dev/null
++++Array longlong:
+size=80,align=8,5th-elem-offset=40,5th-elem-align=8
+size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- /dev/null
++++Array longlong:
+size=80,align=8,5th-elem-offset=40,5th-elem-align=8
+size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- /dev/null
+++++Array of struct with char:
+size=10,align=1,displ-a[5]=5,align-a[5]=1
--- /dev/null
+++++Array of struct with char:
+size=10,align=1,displ-a[5]=5,align-a[5]=1
--- /dev/null
+++++Array of struct with double:
+size=80,align=8,displ-a[5]=40,align-a[5]=8
--- /dev/null
+++++Array of struct with double:
+size=80,align=8,displ-a[5]=40,align-a[5]=8
--- /dev/null
+++++Array of struct with float:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with float:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with int:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with int:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with long:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with long:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with longdouble:
+size=240,align=12,displ-a[5]=120,align-a[5]=12
--- /dev/null
+++++Array of struct with longdouble:
+size=240,align=12,displ-a[5]=120,align-a[5]=12
--- /dev/null
+++++Array of struct with longlong:
+size=80,align=8,displ-a[5]=40,align-a[5]=8
--- /dev/null
+++++Array of struct with longlong:
+size=80,align=8,displ-a[5]=40,align-a[5]=8
--- /dev/null
+++++Array of struct with pointer:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with pointer:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with ptrdiff_t:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with ptrdiff_t:
+size=40,align=4,displ-a[5]=20,align-a[5]=4
--- /dev/null
+++++Array of struct with short:
+size=20,align=2,displ-a[5]=10,align-a[5]=2
--- /dev/null
+++++Array of struct with short:
+size=20,align=2,displ-a[5]=10,align-a[5]=2
--- /dev/null
++++Array pointer:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array pointer:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array ptrdiff_t:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array ptrdiff_t:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array short:
+size=20,align=2,5th-elem-offset=10,5th-elem-align=2
+size=0,align=2,5th-elem-offset=30,5th-elem-align=2
--- /dev/null
++++Array short:
+size=20,align=2,5th-elem-offset=10,5th-elem-align=2
+size=0,align=2,5th-elem-offset=30,5th-elem-align=2
--- /dev/null
++++Array size_t:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array size_t:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array wchar_t:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Array wchar_t:
+size=40,align=4,5th-elem-offset=20,5th-elem-align=4
+size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- /dev/null
++++Bool alignment:
+1
--- /dev/null
++++Char alignment:
+1
--- /dev/null
++++Char alignment:
+1
--- /dev/null
++++Double alignment:
+8
--- /dev/null
++++Double alignment:
+8
--- /dev/null
++++Float alignment:
+4
--- /dev/null
++++Float alignment:
+4
--- /dev/null
++++Int alignment:
+4
--- /dev/null
++++Int alignment:
+4
--- /dev/null
++++Long alignment:
+4
--- /dev/null
++++Long alignment:
+4
--- /dev/null
++++Long Double alignment:
+16
--- /dev/null
++++Long Double alignment:
+16
--- /dev/null
++++Long long alignment:
+8
--- /dev/null
++++Long long alignment:
+8
--- /dev/null
++++Pointer alignment:
+4
--- /dev/null
++++Pointer alignment:
+4
--- /dev/null
++++ptrdiff_t alignment:
+4
--- /dev/null
++++ptrdiff_t alignment:
+4
--- /dev/null
++++Short alignment:
+2
--- /dev/null
++++Short alignment:
+2
--- /dev/null
++++size_t alignment:
+4
--- /dev/null
++++size_t alignment:
+4
--- /dev/null
++++wchar_t alignment:
+4
--- /dev/null
++++wchar_t alignment:
+4
--- /dev/null
++++Biggest field alignment:
+max field align=16
--- /dev/null
++++Biggest field alignment:
+max field align=16
--- /dev/null
+++Class with char inhereting class with char:
+size=2,align=1
+offset-char=0,offset-char=1,
+align-char=1,align-char=1
--- /dev/null
+++Class with double inhereting class with char:
+size=16,align=8
+offset-char=0,offset-double=8,
+align-char=1,align-double=8
--- /dev/null
+++Class with float inhereting class with char:
+size=8,align=4
+offset-char=0,offset-float=4,
+align-char=1,align-float=4
--- /dev/null
+++Class with int inhereting class with char:
+size=8,align=4
+offset-char=0,offset-int=4,
+align-char=1,align-int=4
--- /dev/null
+++Class with long inhereting class with char:
+size=8,align=4
+offset-char=0,offset-long=4,
+align-char=1,align-long=4
--- /dev/null
+++Class with longdouble inhereting class with char:
+size=32,align=16
+offset-char=0,offset-longdouble=16,
+align-char=1,align-longdouble=16
--- /dev/null
+++Class with longlong inhereting class with char:
+size=16,align=8
+offset-char=0,offset-longlong=8,
+align-char=1,align-longlong=8
--- /dev/null
+++Class with pointer inhereting class with char:
+size=8,align=4
+offset-char=0,offset-pointer=4,
+align-char=1,align-pointer=4
--- /dev/null
+++Class with short inhereting class with char:
+size=4,align=2
+offset-char=0,offset-short=2,
+align-char=1,align-short=2
--- /dev/null
+++Class with char inhereting classes with char & char:
+size=3,align=1
+offset-f=0,offset-f2=1,offset-m=2,
+align-f=1,align-f2=1,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=1,align-f2=8,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & float:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=1,align-f2=4,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & int:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=1,align-f2=4,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & long:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=1,align-f2=4,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & longdouble:
+size=48,align=12
+offset-f=0,offset-f2=12,offset-m=36,
+align-f=1,align-f2=16,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & longlong:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=1,align-f2=8,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & pointer:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=1,align-f2=4,align-m=1
--- /dev/null
+++Class with char inhereting classes with char & short:
+size=6,align=2
+offset-f=0,offset-f2=2,offset-m=4,
+align-f=1,align-f2=2,align-m=1
--- /dev/null
+++Class with char inhereting class with double:
+size=16,align=8
+offset-double=0,offset-char=8,
+align-double=8,align-char=1
--- /dev/null
+++Class with double inhereting class with double:
+size=16,align=8
+offset-double=0,offset-double=8,
+align-double=8,align-double=8
--- /dev/null
+++Class with float inhereting class with double:
+size=16,align=8
+offset-double=0,offset-float=8,
+align-double=8,align-float=4
--- /dev/null
+++Class with int inhereting class with double:
+size=16,align=8
+offset-double=0,offset-int=8,
+align-double=8,align-int=4
--- /dev/null
+++Class with long inhereting class with double:
+size=16,align=8
+offset-double=0,offset-long=8,
+align-double=8,align-long=4
--- /dev/null
+++Class with longlong inhereting class with double:
+size=16,align=8
+offset-double=0,offset-longlong=8,
+align-double=8,align-longlong=8
--- /dev/null
+++Class with pointer inhereting class with double:
+size=16,align=8
+offset-double=0,offset-pointer=8,
+align-double=8,align-pointer=4
--- /dev/null
+++Class with short inhereting class with double:
+size=16,align=8
+offset-double=0,offset-short=8,
+align-double=8,align-short=2
--- /dev/null
+++Class with double inhereting classes with double & char:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=1,align-m=8
--- /dev/null
+++Class with double inhereting classes with double & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=8,align-m=8
--- /dev/null
+++Class with double inhereting classes with double & float:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with double inhereting classes with double & int:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with double inhereting classes with double & long:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with double inhereting classes with double & longlong:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=8,align-m=8
--- /dev/null
+++Class with double inhereting classes with double & pointer:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with double inhereting classes with double & short:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=2,align-m=8
--- /dev/null
+++Class with char inhereting class with float:
+size=8,align=4
+offset-float=0,offset-char=4,
+align-float=4,align-char=1
--- /dev/null
+++Class with double inhereting class with float:
+size=16,align=8
+offset-float=0,offset-double=8,
+align-float=4,align-double=8
--- /dev/null
+++Class with float inhereting class with float:
+size=8,align=4
+offset-float=0,offset-float=4,
+align-float=4,align-float=4
--- /dev/null
+++Class with int inhereting class with float:
+size=8,align=4
+offset-float=0,offset-int=4,
+align-float=4,align-int=4
--- /dev/null
+++Class with long inhereting class with float:
+size=8,align=4
+offset-float=0,offset-long=4,
+align-float=4,align-long=4
--- /dev/null
+++Class with longdouble inhereting class with float:
+size=32,align=16
+offset-float=0,offset-longdouble=16,
+align-float=4,align-longdouble=16
--- /dev/null
+++Class with longlong inhereting class with float:
+size=16,align=8
+offset-float=0,offset-longlong=8,
+align-float=4,align-longlong=8
--- /dev/null
+++Class with pointer inhereting class with float:
+size=8,align=4
+offset-float=0,offset-pointer=4,
+align-float=4,align-pointer=4
--- /dev/null
+++Class with short inhereting class with float:
+size=8,align=4
+offset-float=0,offset-short=4,
+align-float=4,align-short=2
--- /dev/null
+++Class with float inhereting classes with float & char:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=1,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & float:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & int:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & long:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & longdouble:
+size=48,align=12
+offset-f=0,offset-f2=12,offset-m=36,
+align-f=4,align-f2=16,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & longlong:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & pointer:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with float inhereting classes with float & short:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=2,align-m=4
--- /dev/null
+++Class with char inhereting class with int:
+size=8,align=4
+offset-int=0,offset-char=4,
+align-int=4,align-char=1
--- /dev/null
+++Class with double inhereting class with int:
+size=16,align=8
+offset-int=0,offset-double=8,
+align-int=4,align-double=8
--- /dev/null
+++Class with float inhereting class with int:
+size=8,align=4
+offset-int=0,offset-float=4,
+align-int=4,align-float=4
--- /dev/null
+++Class with int inhereting class with int:
+size=8,align=4
+offset-int=0,offset-int=4,
+align-int=4,align-int=4
--- /dev/null
+++Class with long inhereting class with int:
+size=8,align=4
+offset-int=0,offset-long=4,
+align-int=4,align-long=4
--- /dev/null
+++Class with longdouble inhereting class with int:
+size=32,align=16
+offset-int=0,offset-longdouble=16,
+align-int=4,align-longdouble=16
--- /dev/null
+++Class with longlong inhereting class with int:
+size=16,align=8
+offset-int=0,offset-longlong=8,
+align-int=4,align-longlong=8
--- /dev/null
+++Class with pointer inhereting class with int:
+size=8,align=4
+offset-int=0,offset-pointer=4,
+align-int=4,align-pointer=4
--- /dev/null
+++Class with short inhereting class with int:
+size=8,align=4
+offset-int=0,offset-short=4,
+align-int=4,align-short=2
--- /dev/null
+++Class with int inhereting classes with int & char:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=1,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & float:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & int:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & long:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & longdouble:
+size=48,align=12
+offset-f=0,offset-f2=12,offset-m=36,
+align-f=4,align-f2=16,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & longlong:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & pointer:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with int inhereting classes with int & short:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=2,align-m=4
--- /dev/null
+++Class with char inhereting class with long:
+size=8,align=4
+offset-long=0,offset-char=4,
+align-long=4,align-char=1
--- /dev/null
+++Class with double inhereting class with long:
+size=16,align=8
+offset-long=0,offset-double=8,
+align-long=4,align-double=8
--- /dev/null
+++Class with float inhereting class with long:
+size=8,align=4
+offset-long=0,offset-float=4,
+align-long=4,align-float=4
--- /dev/null
+++Class with int inhereting class with long:
+size=8,align=4
+offset-long=0,offset-int=4,
+align-long=4,align-int=4
--- /dev/null
+++Class with long inhereting class with long:
+size=8,align=4
+offset-long=0,offset-long=4,
+align-long=4,align-long=4
--- /dev/null
+++Class with longdouble inhereting class with long:
+size=32,align=16
+offset-long=0,offset-longdouble=16,
+align-long=4,align-longdouble=16
--- /dev/null
+++Class with longlong inhereting class with long:
+size=16,align=8
+offset-long=0,offset-longlong=8,
+align-long=4,align-longlong=8
--- /dev/null
+++Class with pointer inhereting class with long:
+size=8,align=4
+offset-long=0,offset-pointer=4,
+align-long=4,align-pointer=4
--- /dev/null
+++Class with short inhereting class with long:
+size=8,align=4
+offset-long=0,offset-short=4,
+align-long=4,align-short=2
--- /dev/null
+++Class with long inhereting classes with long & char:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=1,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & float:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & int:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & long:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & longdouble:
+size=48,align=12
+offset-f=0,offset-f2=12,offset-m=36,
+align-f=4,align-f2=16,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & longlong:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & pointer:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with long inhereting classes with long & short:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=2,align-m=4
--- /dev/null
+++Class with char inhereting class with longdouble:
+size=36,align=12
+offset-longdouble=0,offset-char=24,
+align-longdouble=16,align-char=1
--- /dev/null
+++Class with float inhereting class with longdouble:
+size=36,align=12
+offset-longdouble=0,offset-float=24,
+align-longdouble=16,align-float=4
--- /dev/null
+++Class with int inhereting class with longdouble:
+size=36,align=12
+offset-longdouble=0,offset-int=24,
+align-longdouble=16,align-int=4
--- /dev/null
+++Class with long inhereting class with longdouble:
+size=36,align=12
+offset-longdouble=0,offset-long=24,
+align-longdouble=16,align-long=4
--- /dev/null
+++Class with short inhereting class with longdouble:
+size=36,align=12
+offset-longdouble=0,offset-short=24,
+align-longdouble=16,align-short=2
--- /dev/null
+++Class with longdouble inhereting classes with longdouble & char:
+size=64,align=16
+offset-f=0,offset-f2=24,offset-m=48,
+align-f=16,align-f2=1,align-m=16
--- /dev/null
+++Class with longdouble inhereting classes with longdouble & float:
+size=64,align=16
+offset-f=0,offset-f2=24,offset-m=48,
+align-f=16,align-f2=4,align-m=16
--- /dev/null
+++Class with longdouble inhereting classes with longdouble & int:
+size=64,align=16
+offset-f=0,offset-f2=24,offset-m=48,
+align-f=16,align-f2=4,align-m=16
--- /dev/null
+++Class with longdouble inhereting classes with longdouble & long:
+size=64,align=16
+offset-f=0,offset-f2=24,offset-m=48,
+align-f=16,align-f2=4,align-m=16
--- /dev/null
+++Class with longdouble inhereting classes with longdouble & short:
+size=64,align=16
+offset-f=0,offset-f2=24,offset-m=48,
+align-f=16,align-f2=2,align-m=16
--- /dev/null
+++Class with char inhereting class with longlong:
+size=16,align=8
+offset-longlong=0,offset-char=8,
+align-longlong=8,align-char=1
--- /dev/null
+++Class with double inhereting class with longlong:
+size=16,align=8
+offset-longlong=0,offset-double=8,
+align-longlong=8,align-double=8
--- /dev/null
+++Class with float inhereting class with longlong:
+size=16,align=8
+offset-longlong=0,offset-float=8,
+align-longlong=8,align-float=4
--- /dev/null
+++Class with int inhereting class with longlong:
+size=16,align=8
+offset-longlong=0,offset-int=8,
+align-longlong=8,align-int=4
--- /dev/null
+++Class with long inhereting class with longlong:
+size=16,align=8
+offset-longlong=0,offset-long=8,
+align-longlong=8,align-long=4
--- /dev/null
+++Class with pointer inhereting class with longlong:
+size=16,align=8
+offset-longlong=0,offset-pointer=8,
+align-longlong=8,align-pointer=4
--- /dev/null
+++Class with short inhereting class with longlong:
+size=16,align=8
+offset-longlong=0,offset-short=8,
+align-longlong=8,align-short=2
--- /dev/null
+++Class with longlong inhereting classes with longlong & char:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=1,align-m=8
--- /dev/null
+++Class with longlong inhereting classes with longlong & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=8,align-m=8
--- /dev/null
+++Class with longlong inhereting classes with longlong & float:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with longlong inhereting classes with longlong & int:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with longlong inhereting classes with longlong & long:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with longlong inhereting classes with longlong & pointer:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=4,align-m=8
--- /dev/null
+++Class with longlong inhereting classes with longlong & short:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=8,align-f2=2,align-m=8
--- /dev/null
+++Class with char inhereting class with pointer:
+size=8,align=4
+offset-pointer=0,offset-char=4,
+align-pointer=4,align-char=1
--- /dev/null
+++Class with double inhereting class with pointer:
+size=16,align=8
+offset-pointer=0,offset-double=8,
+align-pointer=4,align-double=8
--- /dev/null
+++Class with float inhereting class with pointer:
+size=8,align=4
+offset-pointer=0,offset-float=4,
+align-pointer=4,align-float=4
--- /dev/null
+++Class with int inhereting class with pointer:
+size=8,align=4
+offset-pointer=0,offset-int=4,
+align-pointer=4,align-int=4
--- /dev/null
+++Class with long inhereting class with pointer:
+size=8,align=4
+offset-pointer=0,offset-long=4,
+align-pointer=4,align-long=4
--- /dev/null
+++Class with longlong inhereting class with pointer:
+size=16,align=8
+offset-pointer=0,offset-longlong=8,
+align-pointer=4,align-longlong=8
--- /dev/null
+++Class with pointer inhereting class with pointer:
+size=8,align=4
+offset-pointer=0,offset-pointer=4,
+align-pointer=4,align-pointer=4
--- /dev/null
+++Class with short inhereting class with pointer:
+size=8,align=4
+offset-pointer=0,offset-short=4,
+align-pointer=4,align-short=2
--- /dev/null
+++Class with pointer inhereting classes with pointer & char:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=1,align-m=4
--- /dev/null
+++Class with pointer inhereting classes with pointer & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with pointer inhereting classes with pointer & float:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with pointer inhereting classes with pointer & int:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with pointer inhereting classes with pointer & long:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with pointer inhereting classes with pointer & longlong:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=4,align-f2=8,align-m=4
--- /dev/null
+++Class with pointer inhereting classes with pointer & pointer:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=4,align-m=4
--- /dev/null
+++Class with pointer inhereting classes with pointer & short:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=4,align-f2=2,align-m=4
--- /dev/null
+++Class with char inhereting class with short:
+size=4,align=2
+offset-short=0,offset-char=2,
+align-short=2,align-char=1
--- /dev/null
+++Class with double inhereting class with short:
+size=16,align=8
+offset-short=0,offset-double=8,
+align-short=2,align-double=8
--- /dev/null
+++Class with float inhereting class with short:
+size=8,align=4
+offset-short=0,offset-float=4,
+align-short=2,align-float=4
--- /dev/null
+++Class with int inhereting class with short:
+size=8,align=4
+offset-short=0,offset-int=4,
+align-short=2,align-int=4
--- /dev/null
+++Class with long inhereting class with short:
+size=8,align=4
+offset-short=0,offset-long=4,
+align-short=2,align-long=4
--- /dev/null
+++Class with longdouble inhereting class with short:
+size=32,align=16
+offset-short=0,offset-longdouble=16,
+align-short=2,align-longdouble=16
--- /dev/null
+++Class with longlong inhereting class with short:
+size=16,align=8
+offset-short=0,offset-longlong=8,
+align-short=2,align-longlong=8
--- /dev/null
+++Class with pointer inhereting class with short:
+size=8,align=4
+offset-short=0,offset-pointer=4,
+align-short=2,align-pointer=4
--- /dev/null
+++Class with short inhereting class with short:
+size=4,align=2
+offset-short=0,offset-short=2,
+align-short=2,align-short=2
--- /dev/null
+++Class with short inhereting classes with short & char:
+size=6,align=2
+offset-f=0,offset-f2=2,offset-m=4,
+align-f=2,align-f2=1,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & double:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=2,align-f2=8,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & float:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=2,align-f2=4,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & int:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=2,align-f2=4,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & long:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=2,align-f2=4,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & longdouble:
+size=48,align=12
+offset-f=0,offset-f2=12,offset-m=36,
+align-f=2,align-f2=16,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & longlong:
+size=24,align=8
+offset-f=0,offset-f2=8,offset-m=16,
+align-f=2,align-f2=8,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & pointer:
+size=12,align=4
+offset-f=0,offset-f2=4,offset-m=8,
+align-f=2,align-f2=4,align-m=2
--- /dev/null
+++Class with short inhereting classes with short & short:
+size=6,align=2
+offset-f=0,offset-f2=2,offset-m=4,
+align-f=2,align-f2=2,align-m=2
--- /dev/null
++++Class starting with char and containing virtual function:
+size=8,align=4
+offset-m=0,align-m=1
--- /dev/null
++++Class starting with int and containing virtual function:
+size=8,align=4
+offset-m=0,align-m=4
--- /dev/null
++++Class starting with long and containing virtual function:
+size=8,align=4
+offset-m=0,align-m=4
--- /dev/null
++++Endian test:
+little endian
--- /dev/null
++++Endian test:
+little endian
--- /dev/null
+0 0 0 0 0 0 0 0 1f 0 0 0
--- /dev/null
+ff ff f 0 0 0 0 0
+ff ff f 0 ff ff 1 0
--- /dev/null
+0 0 0 0 ff ff f 0 0 0 0 0
+0 0 0 0 ff ff f 0 ff ff 1 0
--- /dev/null
+ff ff ff 0 0 0 0 0
+ff ff ff 0 ff ff ff 0
--- /dev/null
+0 0 0 0 ff ff ff 0 0 0 0 0
+0 0 0 0 ff ff ff 0 ff ff ff 0
--- /dev/null
+1 0 0 0 0 0 0 0
+ff ff 3f 0 0 0 0 0
+ff ff 3f 0 ff ff ff 7f
--- /dev/null
+1 0 0 0 0 0 0 0
+ff ff 3f 0 0 0 0 0
+ff ff 3f 0 ff ff ff 7f
--- /dev/null
+1 0 0 0
+f 0 0 0
+1f 0 0 0
--- /dev/null
+1 0 0 0
+f 0 0 0
+1f 0 0 0
--- /dev/null
+ff 3 0 0
+ff ff 1f 0
+ff ff ff 7f
--- /dev/null
+ff 3 0 0
+ff ff 1f 0
+ff ff ff 7f
--- /dev/null
+ff 7 0 0 0 0 0 0
+ff ff 7f 0 0 0 0 0
+ff ff 7f 0 ff 3 0 0
--- /dev/null
+ff 7 0 0 0 0 0 0
+ff ff 7f 0 0 0 0 0
+ff ff 7f 0 ff 3 0 0
--- /dev/null
+ff 3f 0 0 0 0 0 0
+ff 3f 0 0 ff ff 3f 0
+ff 3f 0 0 ff ff ff ff
--- /dev/null
+ff 3f 0 0 0 0 0 0
+ff 3f 0 0 ff ff 3f 0
+ff 3f 0 0 ff ff ff ff
--- /dev/null
+ff 3f 0 0 0 0 0 0 0 0 0 0
+ff 3f 0 0 ff ff ff 1f 0 0 0 0
+ff 3f 0 0 ff ff ff 1f ff ff ff 3f
--- /dev/null
+ff 3f 0 0 0 0 0 0 0 0 0 0
+ff 3f 0 0 ff ff ff 1f 0 0 0 0
+ff 3f 0 0 ff ff ff 1f ff ff ff 3f
--- /dev/null
+ff 3f 0 0 0 0 0 0 0 0 0 0
+ff 3f 0 0 ff ff ff 7f 0 0 0 0
+ff 3f 0 0 ff ff ff 7f ff ff ff 3
--- /dev/null
+ff 3f 0 0 0 0 0 0 0 0 0 0
+ff 3f 0 0 ff ff ff 7f 0 0 0 0
+ff 3f 0 0 ff ff ff 7f ff ff ff 3
--- /dev/null
+ff 3f 0 0
+ff ff 3f 0
+ff ff ff 7f
--- /dev/null
+ff 3f 0 0
+ff ff 3f 0
+ff ff ff 7f
--- /dev/null
+ff 7f 0 0 0 0 0 0
+ff ff 0 0 0 0 0 0
+ff ff 0 0 ff ff 3f 0
--- /dev/null
+ff 7f 0 0 0 0 0 0
+ff ff 0 0 0 0 0 0
+ff ff 0 0 ff ff 3f 0
--- /dev/null
+ff ff 0 0 0 0 0 0 0 0 0 0
+ff ff 0 0 ff ff ff 3f 0 0 0 0
+ff ff 0 0 ff ff ff 3f ff 7f 0 0
--- /dev/null
+ff ff 0 0 0 0 0 0 0 0 0 0
+ff ff 0 0 ff ff ff 3f 0 0 0 0
+ff ff 0 0 ff ff ff 3f ff 7f 0 0
--- /dev/null
+ff ff 1 0 0 0 0 0
+ff ff 1 0 ff ff 1 0
+ff ff 1 0 ff ff 7 0
--- /dev/null
+ff ff 1 0 0 0 0 0
+ff ff 1 0 ff ff 1 0
+ff ff 1 0 ff ff 7 0
--- /dev/null
+ff ff 1 0 0 0 0 0 0 0 0 0
+ff ff 1 0 ff ff 1 0 0 0 0 0
+ff ff 1 0 ff ff 1 0 ff ff f 0
--- /dev/null
+ff ff 1 0 0 0 0 0 0 0 0 0
+ff ff 1 0 ff ff 1 0 0 0 0 0
+ff ff 1 0 ff ff 1 0 ff ff f 0
--- /dev/null
+ff ff 1 0 0 0 0 0 0 0 0 0
+ff ff 1 0 ff ff 1f 0 0 0 0 0
+ff ff 1 0 ff ff 1f 0 ff ff 1 0
--- /dev/null
+ff ff 1 0 0 0 0 0 0 0 0 0
+ff ff 1 0 ff ff 1f 0 0 0 0 0
+ff ff 1 0 ff ff 1f 0 ff ff 1 0
--- /dev/null
+ff ff 3 0 0 0 0 0 0 0 0 0
+ff ff 3 0 ff 7f 0 0 0 0 0 0
+ff ff 3 0 ff 7f 0 0 ff ff ff 3f
--- /dev/null
+ff ff 3 0 0 0 0 0 0 0 0 0
+ff ff 3 0 ff 7f 0 0 0 0 0 0
+ff ff 3 0 ff 7f 0 0 ff ff ff 3f
--- /dev/null
+ff ff 3 0 0 0 0 0
+ff ff 3 0 ff ff ff 3
--- /dev/null
+ff ff 3 0 0 0 0 0 0 0 0 0
+ff ff 3 0 ff ff ff 3 0 0 0 0
--- /dev/null
+ff ff 3 0 0 0 0 0 0 0 0 0
+ff ff 3 0 ff ff ff 3 0 0 0 0
+ff ff 3 0 ff ff ff 3 ff 7 0 0
--- /dev/null
+ff ff 3 0 0 0 0 0 0 0 0 0
+ff ff 3 0 ff ff ff 3 0 0 0 0
+ff ff 3 0 ff ff ff 3 ff 7 0 0
--- /dev/null
+ff ff 3 0 0 0 0 0
+ff ff 3f 0 0 0 0 0
+ff ff 3f 0 ff ff 1 0
--- /dev/null
+ff ff 3 0 0 0 0 0
+ff ff 3f 0 0 0 0 0
+ff ff 3f 0 ff ff 1 0
--- /dev/null
+ff ff 3 0 0 0 0 0
+ff ff 7f 0 0 0 0 0
+ff ff 7f 0 ff ff 0 0
--- /dev/null
+ff ff 3 0 0 0 0 0
+ff ff 7f 0 0 0 0 0
+ff ff 7f 0 ff ff 0 0
--- /dev/null
+ff ff 7 0 0 0 0 0
+ff ff ff 1 0 0 0 0
+ff ff ff 1 ff ff 3f 0
--- /dev/null
+ff ff 7 0 0 0 0 0
+ff ff ff 1 0 0 0 0
+ff ff ff 1 ff ff 3f 0
--- /dev/null
+3 0 0 0 0 0 0 0
+ff ff ff 7 0 0 0 0
+ff ff ff 7 ff ff ff 7
--- /dev/null
+3 0 0 0 0 0 0 0
+ff ff ff 7 0 0 0 0
+ff ff ff 7 ff ff ff 7
--- /dev/null
+ff ff f 0 0 0 0 0
+ff ff f 0 ff ff 7 0
+ff ff f 0 ff ff ff f
--- /dev/null
+ff ff f 0 0 0 0 0
+ff ff f 0 ff ff 7 0
+ff ff f 0 ff ff ff f
--- /dev/null
+ff ff f 0 0 0 0 0 0 0 0 0
+ff ff f 0 ff ff f 0 0 0 0 0
+ff ff f 0 ff ff f 0 ff 7f 0 0
--- /dev/null
+ff ff f 0 0 0 0 0 0 0 0 0
+ff ff f 0 ff ff f 0 0 0 0 0
+ff ff f 0 ff ff f 0 ff 7f 0 0
--- /dev/null
+ff ff f 0 0 0 0 0 0 0 0 0
+ff ff f 0 ff ff ff 3 0 0 0 0
+ff ff f 0 ff ff ff 3 ff 3f 0 0
--- /dev/null
+ff ff f 0 0 0 0 0 0 0 0 0
+ff ff f 0 ff ff ff 3 0 0 0 0
+ff ff f 0 ff ff ff 3 ff 3f 0 0
--- /dev/null
+ff ff 1f 0 0 0 0 0 0 0 0 0
+ff ff 1f 0 ff ff 0 0 0 0 0 0
+ff ff 1f 0 ff ff 0 0 ff ff ff 0
--- /dev/null
+ff ff 1f 0 0 0 0 0 0 0 0 0
+ff ff 1f 0 ff ff 0 0 0 0 0 0
+ff ff 1f 0 ff ff 0 0 ff ff ff 0
--- /dev/null
+ff ff 1f 0 0 0 0 0
+ff ff 1f 0 ff ff 7 0
+ff ff 1f 0 ff ff 7f 0
--- /dev/null
+ff ff 1f 0 0 0 0 0
+ff ff 1f 0 ff ff 7 0
+ff ff 1f 0 ff ff 7f 0
--- /dev/null
+ff ff 1f 0 0 0 0 0
+ff ff 1f 0 ff ff 3f 0
+ff ff 1f 0 ff ff 7f 0
--- /dev/null
+ff ff 1f 0 0 0 0 0
+ff ff 1f 0 ff ff 3f 0
+ff ff 1f 0 ff ff 7f 0
--- /dev/null
+ff ff 1f 0 0 0 0 0 0 0 0 0
+ff ff 1f 0 ff ff ff 0 0 0 0 0
+ff ff 1f 0 ff ff ff 0 ff ff f 0
--- /dev/null
+ff ff 1f 0 0 0 0 0 0 0 0 0
+ff ff 1f 0 ff ff ff 0 0 0 0 0
+ff ff 1f 0 ff ff ff 0 ff ff f 0
--- /dev/null
+ff ff 1f 0 0 0 0 0
+ff ff ff 3 0 0 0 0
+ff ff ff 3 ff ff ff 3
--- /dev/null
+ff ff 1f 0 0 0 0 0
+ff ff ff 3 0 0 0 0
+ff ff ff 3 ff ff ff 3
--- /dev/null
+ff ff 3f 0 0 0 0 0
+ff ff ff 0 0 0 0 0
+ff ff ff 0 ff ff 7 0
--- /dev/null
+ff ff 3f 0 0 0 0 0
+ff ff ff 0 0 0 0 0
+ff ff ff 0 ff ff 7 0
--- /dev/null
+ff ff 3f 0 0 0 0 0
+ff ff ff 0 0 0 0 0
+ff ff ff 0 ff ff ff f
--- /dev/null
+ff ff 3f 0 0 0 0 0
+ff ff ff 0 0 0 0 0
+ff ff ff 0 ff ff ff f
--- /dev/null
+ff ff 7f 0 0 0 0 0
+ff ff 7f 0 ff ff 1 0
+ff ff 7f 0 ff ff ff 1
--- /dev/null
+ff ff 7f 0 0 0 0 0
+ff ff 7f 0 ff ff 1 0
+ff ff 7f 0 ff ff ff 1
--- /dev/null
+ff ff ff 0 0 0 0 0
+ff ff ff 0 ff ff 3 0
+ff ff ff 0 ff ff ff 7
--- /dev/null
+ff ff ff 0 0 0 0 0
+ff ff ff 0 ff ff 3 0
+ff ff ff 0 ff ff ff 7
--- /dev/null
+ff ff ff 0 0 0 0 0 0 0 0 0
+ff ff ff 0 ff ff ff 7 0 0 0 0
+ff ff ff 0 ff ff ff 7 ff 0 0 0
--- /dev/null
+ff ff ff 0 0 0 0 0 0 0 0 0
+ff ff ff 0 ff ff ff 7 0 0 0 0
+ff ff ff 0 ff ff ff 7 ff 0 0 0
--- /dev/null
+ff ff ff 1 0 0 0 0
+ff ff ff 7f 0 0 0 0
+ff ff ff 7f ff ff 7f 0
--- /dev/null
+ff ff ff 1 0 0 0 0
+ff ff ff 7f 0 0 0 0
+ff ff ff 7f ff ff 7f 0
--- /dev/null
+ff ff ff 3 0 0 0 0
+ff ff ff 3 ff 0 0 0
+ff ff ff 3 ff 3f 0 0
--- /dev/null
+ff ff ff 3 0 0 0 0
+ff ff ff 3 ff 0 0 0
+ff ff ff 3 ff 3f 0 0
--- /dev/null
+ff ff ff 7 0 0 0 0
+ff ff ff 7 ff ff 3f 0
+ff ff ff 7 ff ff ff 1f
--- /dev/null
+ff ff ff 7 0 0 0 0
+ff ff ff 7 ff ff 3f 0
+ff ff ff 7 ff ff ff 1f
--- /dev/null
+ff ff ff 1f 0 0 0 0
+ff ff ff 1f ff ff 0 0
+ff ff ff 1f ff ff 7f 0
--- /dev/null
+ff ff ff 1f 0 0 0 0
+ff ff ff 1f ff ff 0 0
+ff ff ff 1f ff ff 7f 0
--- /dev/null
+ff ff ff 1f 0 0 0 0
+ff ff ff 1f f 0 0 0
+ff ff ff 1f ff 3f 0 0
--- /dev/null
+ff ff ff 1f 0 0 0 0
+ff ff ff 1f f 0 0 0
+ff ff ff 1f ff 3f 0 0
--- /dev/null
+7 0 0 0
+ff 3 0 0
+ff 7 0 0
--- /dev/null
+7 0 0 0
+ff 3 0 0
+ff 7 0 0
--- /dev/null
+ff ff ff 3f 0 0 0 0 0 0 0 0
+ff ff ff 3f ff 7f 0 0 0 0 0 0
+ff ff ff 3f ff 7f 0 0 ff ff ff 3
--- /dev/null
+ff ff ff 3f 0 0 0 0 0 0 0 0
+ff ff ff 3f ff 7f 0 0 0 0 0 0
+ff ff ff 3f ff 7f 0 0 ff ff ff 3
--- /dev/null
+ff ff ff 3f 0 0 0 0 0 0 0 0
+ff ff ff 3f ff ff ff 0 0 0 0 0
+ff ff ff 3f ff ff ff 0 ff ff ff 3f
--- /dev/null
+ff ff ff 3f 0 0 0 0 0 0 0 0
+ff ff ff 3f ff ff ff 0 0 0 0 0
+ff ff ff 3f ff ff ff 0 ff ff ff 3f
--- /dev/null
+ff ff ff 7f 0 0 0 0 0 0 0 0
+ff ff ff 7f ff ff ff f 0 0 0 0
+ff ff ff 7f ff ff ff f ff ff 0 0
--- /dev/null
+ff ff ff 7f 0 0 0 0 0 0 0 0
+ff ff ff 7f ff ff ff f 0 0 0 0
+ff ff ff 7f ff ff ff f ff ff 0 0
--- /dev/null
+ff ff ff 7f 0 0 0 0
+ff ff ff 7f f 0 0 0
+ff ff ff 7f ff ff 3 0
--- /dev/null
+ff ff ff 7f 0 0 0 0
+ff ff ff 7f f 0 0 0
+ff ff ff 7f ff ff 3 0
--- /dev/null
+ff ff ff 7f 0 0 0 0
+ff ff ff 7f ff 1 0 0
--- /dev/null
+ff ff ff 7f 0 0 0 0 0 0 0 0
+ff ff ff 7f ff 1 0 0 0 0 0 0
--- /dev/null
+f 0 0 0 0 0 0 0
+ff ff 3 0 0 0 0 0
+ff ff 3 0 ff ff ff 1f
--- /dev/null
+f 0 0 0 0 0 0 0
+ff ff 3 0 0 0 0 0
+ff ff 3 0 ff ff ff 1f
--- /dev/null
+1f 0 0 0 0 0 0 0
+ff ff ff f 0 0 0 0
+ff ff ff f 7f 0 0 0
--- /dev/null
+1f 0 0 0 0 0 0 0
+ff ff ff f 0 0 0 0
+ff ff ff f 7f 0 0 0
--- /dev/null
+7f 0 0 0 0 0 0 0
+ff ff 1f 0 0 0 0 0
+ff ff 1f 0 ff f 0 0
--- /dev/null
+7f 0 0 0 0 0 0 0
+ff ff 1f 0 0 0 0 0
+ff ff 1f 0 ff f 0 0
--- /dev/null
+++++Array of char in struct starting with char:
+size=11,align=1
+offset-char=0,offset-arrayof-char=1,
+align-char=1,align-arrayof-char=1
+offset-char-a[5]=6,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with char:
+size=11,align=1
+offset-char=0,offset-arrayof-char=1,
+align-char=1,align-arrayof-char=1
+offset-char-a[5]=6,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with char:
+size=88,align=8
+offset-char=0,offset-arrayof-double=8,
+align-char=1,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with char:
+size=88,align=8
+offset-char=0,offset-arrayof-double=8,
+align-char=1,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-float=4,
+align-char=1,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-float=4,
+align-char=1,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-int=4,
+align-char=1,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-int=4,
+align-char=1,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-long=4,
+align-char=1,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-long=4,
+align-char=1,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of longdouble in struct starting with char:
+size=176,align=16
+offset-char=0,offset-arrayof-longdouble=16,
+align-char=1,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longdouble in struct starting with char:
+size=176,align=16
+offset-char=0,offset-arrayof-longdouble=16,
+align-char=1,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longlong in struct starting with char:
+size=88,align=8
+offset-char=0,offset-arrayof-longlong=8,
+align-char=1,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with char:
+size=88,align=8
+offset-char=0,offset-arrayof-longlong=8,
+align-char=1,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-pointer=4,
+align-char=1,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with char:
+size=44,align=4
+offset-char=0,offset-arrayof-pointer=4,
+align-char=1,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with char:
+size=22,align=2
+offset-char=0,offset-arrayof-short=2,
+align-char=1,align-arrayof-short=2
+offset-short-a[5]=12,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with char:
+size=22,align=2
+offset-char=0,offset-arrayof-short=2,
+align-char=1,align-arrayof-short=2
+offset-short-a[5]=12,align-short-a[5]=2
--- /dev/null
++++Struct char-char:
+size=2,align=1,offset-char=0,offset-char=1,
+align-char=1,align-char=1
--- /dev/null
++++Struct char-char:
+size=2,align=1,offset-char=0,offset-char=1,
+align-char=1,align-char=1
--- /dev/null
++++Struct char-double:
+size=16,align=8,offset-char=0,offset-double=8,
+align-char=1,align-double=8
--- /dev/null
++++Struct char-double:
+size=16,align=8,offset-char=0,offset-double=8,
+align-char=1,align-double=8
--- /dev/null
++++Struct char-float:
+size=8,align=4,offset-char=0,offset-float=4,
+align-char=1,align-float=4
--- /dev/null
++++Struct char-float:
+size=8,align=4,offset-char=0,offset-float=4,
+align-char=1,align-float=4
--- /dev/null
++++Struct char-int:
+size=8,align=4,offset-char=0,offset-int=4,
+align-char=1,align-int=4
--- /dev/null
++++Struct char-int:
+size=8,align=4,offset-char=0,offset-int=4,
+align-char=1,align-int=4
--- /dev/null
++++Struct char-long:
+size=8,align=4,offset-char=0,offset-long=4,
+align-char=1,align-long=4
--- /dev/null
++++Struct char-long:
+size=8,align=4,offset-char=0,offset-long=4,
+align-char=1,align-long=4
--- /dev/null
++++Struct char-longdouble:
+size=32,align=16,offset-char=0,offset-longdouble=16,
+align-char=1,align-longdouble=16
--- /dev/null
++++Struct char-longdouble:
+size=32,align=16,offset-char=0,offset-longdouble=16,
+align-char=1,align-longdouble=16
--- /dev/null
++++Struct char-longlong:
+size=16,align=8,offset-char=0,offset-longlong=8,
+align-char=1,align-longlong=8
--- /dev/null
++++Struct char-longlong:
+size=16,align=8,offset-char=0,offset-longlong=8,
+align-char=1,align-longlong=8
--- /dev/null
++++Struct char-pointer:
+size=8,align=4,offset-char=0,offset-pointer=4,
+align-char=1,align-pointer=4
--- /dev/null
++++Struct char-pointer:
+size=8,align=4,offset-char=0,offset-pointer=4,
+align-char=1,align-pointer=4
--- /dev/null
++++Struct char-ptrdiff_t:
+size=8,align=4,offset-char=0,offset-ptrdiff_t=4,
+align-char=1,align-ptrdiff_t=4
--- /dev/null
++++Struct char-ptrdiff_t:
+size=8,align=4,offset-char=0,offset-ptrdiff_t=4,
+align-char=1,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with char:
+size=2,align=1
+offset-char=0,offset-sss-char=1,
+align-char=1,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with char:
+size=2,align=1
+offset-char=0,offset-sss-char=1,
+align-char=1,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with char:
+size=16,align=8
+offset-char=0,offset-sss-double=8,
+align-char=1,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with char:
+size=16,align=8
+offset-char=0,offset-sss-double=8,
+align-char=1,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-float=4,
+align-char=1,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-float=4,
+align-char=1,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-int=4,
+align-char=1,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-int=4,
+align-char=1,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-long=4,
+align-char=1,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-long=4,
+align-char=1,align-sss-long=4
--- /dev/null
++++Struct longdouble inside struct starting with char:
+size=36,align=12
+offset-char=0,offset-sss-longdouble=12,
+align-char=1,align-sss-longdouble=12
--- /dev/null
++++Struct longdouble inside struct starting with char:
+size=36,align=12
+offset-char=0,offset-sss-longdouble=12,
+align-char=1,align-sss-longdouble=12
--- /dev/null
++++Struct longlong inside struct starting with char:
+size=16,align=8
+offset-char=0,offset-sss-longlong=8,
+align-char=1,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with char:
+size=16,align=8
+offset-char=0,offset-sss-longlong=8,
+align-char=1,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-pointer=4,
+align-char=1,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-sss-pointer=4,
+align-char=1,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with char:
+size=4,align=2
+offset-char=0,offset-sss-short=2,
+align-char=1,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with char:
+size=4,align=2
+offset-char=0,offset-sss-short=2,
+align-char=1,align-sss-short=2
--- /dev/null
++++Struct char-short:
+size=4,align=2,offset-char=0,offset-short=2,
+align-char=1,align-short=2
--- /dev/null
++++Struct char-short:
+size=4,align=2,offset-char=0,offset-short=2,
+align-char=1,align-short=2
--- /dev/null
++++Struct char-size_t:
+size=8,align=4,offset-char=0,offset-size_t=4,
+align-char=1,align-size_t=4
--- /dev/null
++++Struct char-size_t:
+size=8,align=4,offset-char=0,offset-size_t=4,
+align-char=1,align-size_t=4
--- /dev/null
++++Struct char-wchar_t:
+size=8,align=4,offset-char=0,offset-wchar_t=4,
+align-char=1,align-wchar_t=4
--- /dev/null
++++Struct char-wchar_t:
+size=8,align=4,offset-char=0,offset-wchar_t=4,
+align-char=1,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-last=4,
+align-char=1,align-last=4
--- /dev/null
++++char zerofield inside struct starting with char:
+size=12,align=4
+offset-char=0,offset-last=8,
+align-char=1,align-last=4
--- /dev/null
++++int zerofield inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-last=4,
+align-char=1,align-last=4
--- /dev/null
++++int zerofield inside struct starting with char:
+size=12,align=4
+offset-char=0,offset-last=8,
+align-char=1,align-last=4
--- /dev/null
++++long zerofield inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-last=4,
+align-char=1,align-last=4
--- /dev/null
++++long zerofield inside struct starting with char:
+size=12,align=4
+offset-char=0,offset-last=8,
+align-char=1,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with char:
+size=12,align=4
+offset-char=0,offset-last=8,
+align-char=1,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with char:
+size=24,align=8
+offset-char=0,offset-last=16,
+align-char=1,align-last=4
--- /dev/null
++++short zerofield inside struct starting with char:
+size=8,align=4
+offset-char=0,offset-last=4,
+align-char=1,align-last=4
--- /dev/null
++++short zerofield inside struct starting with char:
+size=12,align=4
+offset-char=0,offset-last=8,
+align-char=1,align-last=4
--- /dev/null
+++++Array of char in struct starting with double:
+size=24,align=8
+offset-double=0,offset-arrayof-char=8,
+align-double=8,align-arrayof-char=1
+offset-char-a[5]=13,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with double:
+size=24,align=8
+offset-double=0,offset-arrayof-char=8,
+align-double=8,align-arrayof-char=1
+offset-char-a[5]=13,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with double:
+size=88,align=8
+offset-double=0,offset-arrayof-double=8,
+align-double=8,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with double:
+size=88,align=8
+offset-double=0,offset-arrayof-double=8,
+align-double=8,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-float=8,
+align-double=8,align-arrayof-float=4
+offset-float-a[5]=28,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-float=8,
+align-double=8,align-arrayof-float=4
+offset-float-a[5]=28,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-int=8,
+align-double=8,align-arrayof-int=4
+offset-int-a[5]=28,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-int=8,
+align-double=8,align-arrayof-int=4
+offset-int-a[5]=28,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-long=8,
+align-double=8,align-arrayof-long=4
+offset-long-a[5]=28,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-long=8,
+align-double=8,align-arrayof-long=4
+offset-long-a[5]=28,align-long-a[5]=4
--- /dev/null
+++++Array of longdouble in struct starting with double:
+size=176,align=16
+offset-double=0,offset-arrayof-longdouble=16,
+align-double=8,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longdouble in struct starting with double:
+size=176,align=16
+offset-double=0,offset-arrayof-longdouble=16,
+align-double=8,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longlong in struct starting with double:
+size=88,align=8
+offset-double=0,offset-arrayof-longlong=8,
+align-double=8,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with double:
+size=88,align=8
+offset-double=0,offset-arrayof-longlong=8,
+align-double=8,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-pointer=8,
+align-double=8,align-arrayof-pointer=4
+offset-pointer-a[5]=28,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with double:
+size=48,align=8
+offset-double=0,offset-arrayof-pointer=8,
+align-double=8,align-arrayof-pointer=4
+offset-pointer-a[5]=28,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with double:
+size=32,align=8
+offset-double=0,offset-arrayof-short=8,
+align-double=8,align-arrayof-short=2
+offset-short-a[5]=18,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with double:
+size=32,align=8
+offset-double=0,offset-arrayof-short=8,
+align-double=8,align-arrayof-short=2
+offset-short-a[5]=18,align-short-a[5]=2
--- /dev/null
++++Struct double-char:
+size=16,align=8,offset-double=0,offset-char=8,
+align-double=8,align-char=1
--- /dev/null
++++Struct double-char:
+size=16,align=8,offset-double=0,offset-char=8,
+align-double=8,align-char=1
--- /dev/null
++++Struct double-double:
+size=16,align=8,offset-double=0,offset-double=8,
+align-double=8,align-double=8
--- /dev/null
++++Struct double-double:
+size=16,align=8,offset-double=0,offset-double=8,
+align-double=8,align-double=8
--- /dev/null
++++Struct double-float:
+size=16,align=8,offset-double=0,offset-float=8,
+align-double=8,align-float=4
--- /dev/null
++++Struct double-float:
+size=16,align=8,offset-double=0,offset-float=8,
+align-double=8,align-float=4
--- /dev/null
++++Struct double-int:
+size=16,align=8,offset-double=0,offset-int=8,
+align-double=8,align-int=4
--- /dev/null
++++Struct double-int:
+size=16,align=8,offset-double=0,offset-int=8,
+align-double=8,align-int=4
--- /dev/null
++++Struct double-long:
+size=16,align=8,offset-double=0,offset-long=8,
+align-double=8,align-long=4
--- /dev/null
++++Struct double-long:
+size=16,align=8,offset-double=0,offset-long=8,
+align-double=8,align-long=4
--- /dev/null
++++Struct double-longdouble:
+size=32,align=16,offset-double=0,offset-longdouble=16,
+align-double=8,align-longdouble=16
--- /dev/null
++++Struct double-longdouble:
+size=32,align=16,offset-double=0,offset-longdouble=16,
+align-double=8,align-longdouble=16
--- /dev/null
++++Struct double-longlong:
+size=16,align=8,offset-double=0,offset-longlong=8,
+align-double=8,align-longlong=8
--- /dev/null
++++Struct double-longlong:
+size=16,align=8,offset-double=0,offset-longlong=8,
+align-double=8,align-longlong=8
--- /dev/null
++++Struct double-pointer:
+size=16,align=8,offset-double=0,offset-pointer=8,
+align-double=8,align-pointer=4
--- /dev/null
++++Struct double-pointer:
+size=16,align=8,offset-double=0,offset-pointer=8,
+align-double=8,align-pointer=4
--- /dev/null
++++Struct double-ptrdiff_t:
+size=16,align=8,offset-double=0,offset-ptrdiff_t=8,
+align-double=8,align-ptrdiff_t=4
--- /dev/null
++++Struct double-ptrdiff_t:
+size=16,align=8,offset-double=0,offset-ptrdiff_t=8,
+align-double=8,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-char=8,
+align-double=8,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-char=8,
+align-double=8,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-double=8,
+align-double=8,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-double=8,
+align-double=8,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-float=8,
+align-double=8,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-float=8,
+align-double=8,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-int=8,
+align-double=8,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-int=8,
+align-double=8,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-long=8,
+align-double=8,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-long=8,
+align-double=8,align-sss-long=4
--- /dev/null
++++Struct longdouble inside struct starting with double:
+size=36,align=12
+offset-double=0,offset-sss-longdouble=12,
+align-double=8,align-sss-longdouble=12
--- /dev/null
++++Struct longdouble inside struct starting with double:
+size=36,align=12
+offset-double=0,offset-sss-longdouble=12,
+align-double=8,align-sss-longdouble=12
--- /dev/null
++++Struct longlong inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-longlong=8,
+align-double=8,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-longlong=8,
+align-double=8,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-pointer=8,
+align-double=8,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-pointer=8,
+align-double=8,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-short=8,
+align-double=8,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-sss-short=8,
+align-double=8,align-sss-short=2
--- /dev/null
++++Struct double-short:
+size=16,align=8,offset-double=0,offset-short=8,
+align-double=8,align-short=2
--- /dev/null
++++Struct double-short:
+size=16,align=8,offset-double=0,offset-short=8,
+align-double=8,align-short=2
--- /dev/null
++++Struct double-size_t:
+size=16,align=8,offset-double=0,offset-size_t=8,
+align-double=8,align-size_t=4
--- /dev/null
++++Struct double-size_t:
+size=16,align=8,offset-double=0,offset-size_t=8,
+align-double=8,align-size_t=4
--- /dev/null
++++Struct double-wchar_t:
+size=16,align=8,offset-double=0,offset-wchar_t=8,
+align-double=8,align-wchar_t=4
--- /dev/null
++++Struct double-wchar_t:
+size=16,align=8,offset-double=0,offset-wchar_t=8,
+align-double=8,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=8,
+align-double=8,align-last=4
--- /dev/null
++++char zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=12,
+align-double=8,align-last=4
--- /dev/null
++++int zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=8,
+align-double=8,align-last=4
--- /dev/null
++++int zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=12,
+align-double=8,align-last=4
--- /dev/null
++++long zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=8,
+align-double=8,align-last=4
--- /dev/null
++++long zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=12,
+align-double=8,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=8,
+align-double=8,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with double:
+size=24,align=8
+offset-double=0,offset-last=16,
+align-double=8,align-last=4
--- /dev/null
++++short zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=8,
+align-double=8,align-last=4
--- /dev/null
++++short zerofield inside struct starting with double:
+size=16,align=8
+offset-double=0,offset-last=12,
+align-double=8,align-last=4
--- /dev/null
+++++Array of char in struct starting with float:
+size=16,align=4
+offset-float=0,offset-arrayof-char=4,
+align-float=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with float:
+size=16,align=4
+offset-float=0,offset-arrayof-char=4,
+align-float=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with float:
+size=88,align=8
+offset-float=0,offset-arrayof-double=8,
+align-float=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with float:
+size=88,align=8
+offset-float=0,offset-arrayof-double=8,
+align-float=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-float=4,
+align-float=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-float=4,
+align-float=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-int=4,
+align-float=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-int=4,
+align-float=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-long=4,
+align-float=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-long=4,
+align-float=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of longdouble in struct starting with float:
+size=176,align=16
+offset-float=0,offset-arrayof-longdouble=16,
+align-float=4,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longdouble in struct starting with float:
+size=176,align=16
+offset-float=0,offset-arrayof-longdouble=16,
+align-float=4,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longlong in struct starting with float:
+size=88,align=8
+offset-float=0,offset-arrayof-longlong=8,
+align-float=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with float:
+size=88,align=8
+offset-float=0,offset-arrayof-longlong=8,
+align-float=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-pointer=4,
+align-float=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with float:
+size=44,align=4
+offset-float=0,offset-arrayof-pointer=4,
+align-float=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with float:
+size=24,align=4
+offset-float=0,offset-arrayof-short=4,
+align-float=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with float:
+size=24,align=4
+offset-float=0,offset-arrayof-short=4,
+align-float=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
++++Struct float-char:
+size=8,align=4,offset-float=0,offset-char=4,
+align-float=4,align-char=1
--- /dev/null
++++Struct float-char:
+size=8,align=4,offset-float=0,offset-char=4,
+align-float=4,align-char=1
--- /dev/null
++++Struct float-double:
+size=16,align=8,offset-float=0,offset-double=8,
+align-float=4,align-double=8
--- /dev/null
++++Struct float-double:
+size=16,align=8,offset-float=0,offset-double=8,
+align-float=4,align-double=8
--- /dev/null
++++Struct float-float:
+size=8,align=4,offset-float=0,offset-float=4,
+align-float=4,align-float=4
--- /dev/null
++++Struct float-float:
+size=8,align=4,offset-float=0,offset-float=4,
+align-float=4,align-float=4
--- /dev/null
++++Struct float-int:
+size=8,align=4,offset-float=0,offset-int=4,
+align-float=4,align-int=4
--- /dev/null
++++Struct float-int:
+size=8,align=4,offset-float=0,offset-int=4,
+align-float=4,align-int=4
--- /dev/null
++++Struct float-long:
+size=8,align=4,offset-float=0,offset-long=4,
+align-float=4,align-long=4
--- /dev/null
++++Struct float-long:
+size=8,align=4,offset-float=0,offset-long=4,
+align-float=4,align-long=4
--- /dev/null
++++Struct float-longdouble:
+size=32,align=16,offset-float=0,offset-longdouble=16,
+align-float=4,align-longdouble=16
--- /dev/null
++++Struct float-longdouble:
+size=32,align=16,offset-float=0,offset-longdouble=16,
+align-float=4,align-longdouble=16
--- /dev/null
++++Struct float-longlong:
+size=16,align=8,offset-float=0,offset-longlong=8,
+align-float=4,align-longlong=8
--- /dev/null
++++Struct float-longlong:
+size=16,align=8,offset-float=0,offset-longlong=8,
+align-float=4,align-longlong=8
--- /dev/null
++++Struct float-pointer:
+size=8,align=4,offset-float=0,offset-pointer=4,
+align-float=4,align-pointer=4
--- /dev/null
++++Struct float-pointer:
+size=8,align=4,offset-float=0,offset-pointer=4,
+align-float=4,align-pointer=4
--- /dev/null
++++Struct float-ptrdiff_t:
+size=8,align=4,offset-float=0,offset-ptrdiff_t=4,
+align-float=4,align-ptrdiff_t=4
--- /dev/null
++++Struct float-ptrdiff_t:
+size=8,align=4,offset-float=0,offset-ptrdiff_t=4,
+align-float=4,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-char=4,
+align-float=4,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-char=4,
+align-float=4,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with float:
+size=16,align=8
+offset-float=0,offset-sss-double=8,
+align-float=4,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with float:
+size=16,align=8
+offset-float=0,offset-sss-double=8,
+align-float=4,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-float=4,
+align-float=4,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-float=4,
+align-float=4,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-int=4,
+align-float=4,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-int=4,
+align-float=4,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-long=4,
+align-float=4,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-long=4,
+align-float=4,align-sss-long=4
--- /dev/null
++++Struct longdouble inside struct starting with float:
+size=36,align=12
+offset-float=0,offset-sss-longdouble=12,
+align-float=4,align-sss-longdouble=12
--- /dev/null
++++Struct longdouble inside struct starting with float:
+size=36,align=12
+offset-float=0,offset-sss-longdouble=12,
+align-float=4,align-sss-longdouble=12
--- /dev/null
++++Struct longlong inside struct starting with float:
+size=16,align=8
+offset-float=0,offset-sss-longlong=8,
+align-float=4,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with float:
+size=16,align=8
+offset-float=0,offset-sss-longlong=8,
+align-float=4,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-pointer=4,
+align-float=4,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-pointer=4,
+align-float=4,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-short=4,
+align-float=4,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-sss-short=4,
+align-float=4,align-sss-short=2
--- /dev/null
++++Struct float-short:
+size=8,align=4,offset-float=0,offset-short=4,
+align-float=4,align-short=2
--- /dev/null
++++Struct float-short:
+size=8,align=4,offset-float=0,offset-short=4,
+align-float=4,align-short=2
--- /dev/null
++++Struct float-size_t:
+size=8,align=4,offset-float=0,offset-size_t=4,
+align-float=4,align-size_t=4
--- /dev/null
++++Struct float-size_t:
+size=8,align=4,offset-float=0,offset-size_t=4,
+align-float=4,align-size_t=4
--- /dev/null
++++Struct float-wchar_t:
+size=8,align=4,offset-float=0,offset-wchar_t=4,
+align-float=4,align-wchar_t=4
--- /dev/null
++++Struct float-wchar_t:
+size=8,align=4,offset-float=0,offset-wchar_t=4,
+align-float=4,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-last=4,
+align-float=4,align-last=4
--- /dev/null
++++char zerofield inside struct starting with float:
+size=12,align=4
+offset-float=0,offset-last=8,
+align-float=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-last=4,
+align-float=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with float:
+size=12,align=4
+offset-float=0,offset-last=8,
+align-float=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-last=4,
+align-float=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with float:
+size=12,align=4
+offset-float=0,offset-last=8,
+align-float=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with float:
+size=12,align=4
+offset-float=0,offset-last=8,
+align-float=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with float:
+size=24,align=8
+offset-float=0,offset-last=16,
+align-float=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with float:
+size=8,align=4
+offset-float=0,offset-last=4,
+align-float=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with float:
+size=12,align=4
+offset-float=0,offset-last=8,
+align-float=4,align-last=4
--- /dev/null
+++++Array of char in struct starting with int:
+size=16,align=4
+offset-int=0,offset-arrayof-char=4,
+align-int=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with int:
+size=16,align=4
+offset-int=0,offset-arrayof-char=4,
+align-int=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with int:
+size=88,align=8
+offset-int=0,offset-arrayof-double=8,
+align-int=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with int:
+size=88,align=8
+offset-int=0,offset-arrayof-double=8,
+align-int=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-float=4,
+align-int=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-float=4,
+align-int=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-int=4,
+align-int=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-int=4,
+align-int=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-long=4,
+align-int=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-long=4,
+align-int=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of longdouble in struct starting with int:
+size=176,align=16
+offset-int=0,offset-arrayof-longdouble=16,
+align-int=4,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longdouble in struct starting with int:
+size=176,align=16
+offset-int=0,offset-arrayof-longdouble=16,
+align-int=4,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longlong in struct starting with int:
+size=88,align=8
+offset-int=0,offset-arrayof-longlong=8,
+align-int=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with int:
+size=88,align=8
+offset-int=0,offset-arrayof-longlong=8,
+align-int=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-pointer=4,
+align-int=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with int:
+size=44,align=4
+offset-int=0,offset-arrayof-pointer=4,
+align-int=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with int:
+size=24,align=4
+offset-int=0,offset-arrayof-short=4,
+align-int=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with int:
+size=24,align=4
+offset-int=0,offset-arrayof-short=4,
+align-int=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
++++Struct int-char:
+size=8,align=4,offset-int=0,offset-char=4,
+align-int=4,align-char=1
--- /dev/null
++++Struct int-char:
+size=8,align=4,offset-int=0,offset-char=4,
+align-int=4,align-char=1
--- /dev/null
++++Struct int-double:
+size=16,align=8,offset-int=0,offset-double=8,
+align-int=4,align-double=8
--- /dev/null
++++Struct int-double:
+size=16,align=8,offset-int=0,offset-double=8,
+align-int=4,align-double=8
--- /dev/null
++++Struct int-float:
+size=8,align=4,offset-int=0,offset-float=4,
+align-int=4,align-float=4
--- /dev/null
++++Struct int-float:
+size=8,align=4,offset-int=0,offset-float=4,
+align-int=4,align-float=4
--- /dev/null
++++Struct int-int:
+size=8,align=4,offset-int=0,offset-int=4,
+align-int=4,align-int=4
--- /dev/null
++++Struct int-int:
+size=8,align=4,offset-int=0,offset-int=4,
+align-int=4,align-int=4
--- /dev/null
++++Struct int-long:
+size=8,align=4,offset-int=0,offset-long=4,
+align-int=4,align-long=4
--- /dev/null
++++Struct int-long:
+size=8,align=4,offset-int=0,offset-long=4,
+align-int=4,align-long=4
--- /dev/null
++++Struct int-longdouble:
+size=32,align=16,offset-int=0,offset-longdouble=16,
+align-int=4,align-longdouble=16
--- /dev/null
++++Struct int-longdouble:
+size=32,align=16,offset-int=0,offset-longdouble=16,
+align-int=4,align-longdouble=16
--- /dev/null
++++Struct int-longlong:
+size=16,align=8,offset-int=0,offset-longlong=8,
+align-int=4,align-longlong=8
--- /dev/null
++++Struct int-longlong:
+size=16,align=8,offset-int=0,offset-longlong=8,
+align-int=4,align-longlong=8
--- /dev/null
++++Struct int-pointer:
+size=8,align=4,offset-int=0,offset-pointer=4,
+align-int=4,align-pointer=4
--- /dev/null
++++Struct int-pointer:
+size=8,align=4,offset-int=0,offset-pointer=4,
+align-int=4,align-pointer=4
--- /dev/null
++++Struct int-ptrdiff_t:
+size=8,align=4,offset-int=0,offset-ptrdiff_t=4,
+align-int=4,align-ptrdiff_t=4
--- /dev/null
++++Struct int-ptrdiff_t:
+size=8,align=4,offset-int=0,offset-ptrdiff_t=4,
+align-int=4,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-char=4,
+align-int=4,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-char=4,
+align-int=4,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with int:
+size=16,align=8
+offset-int=0,offset-sss-double=8,
+align-int=4,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with int:
+size=16,align=8
+offset-int=0,offset-sss-double=8,
+align-int=4,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-float=4,
+align-int=4,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-float=4,
+align-int=4,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-int=4,
+align-int=4,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-int=4,
+align-int=4,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-long=4,
+align-int=4,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-long=4,
+align-int=4,align-sss-long=4
--- /dev/null
++++Struct longdouble inside struct starting with int:
+size=36,align=12
+offset-int=0,offset-sss-longdouble=12,
+align-int=4,align-sss-longdouble=12
--- /dev/null
++++Struct longdouble inside struct starting with int:
+size=36,align=12
+offset-int=0,offset-sss-longdouble=12,
+align-int=4,align-sss-longdouble=12
--- /dev/null
++++Struct longlong inside struct starting with int:
+size=16,align=8
+offset-int=0,offset-sss-longlong=8,
+align-int=4,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with int:
+size=16,align=8
+offset-int=0,offset-sss-longlong=8,
+align-int=4,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-pointer=4,
+align-int=4,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-pointer=4,
+align-int=4,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-short=4,
+align-int=4,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-sss-short=4,
+align-int=4,align-sss-short=2
--- /dev/null
++++Struct int-short:
+size=8,align=4,offset-int=0,offset-short=4,
+align-int=4,align-short=2
--- /dev/null
++++Struct int-short:
+size=8,align=4,offset-int=0,offset-short=4,
+align-int=4,align-short=2
--- /dev/null
++++Struct int-size_t:
+size=8,align=4,offset-int=0,offset-size_t=4,
+align-int=4,align-size_t=4
--- /dev/null
++++Struct int-size_t:
+size=8,align=4,offset-int=0,offset-size_t=4,
+align-int=4,align-size_t=4
--- /dev/null
++++Struct int-wchar_t:
+size=8,align=4,offset-int=0,offset-wchar_t=4,
+align-int=4,align-wchar_t=4
--- /dev/null
++++Struct int-wchar_t:
+size=8,align=4,offset-int=0,offset-wchar_t=4,
+align-int=4,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-last=4,
+align-int=4,align-last=4
--- /dev/null
++++char zerofield inside struct starting with int:
+size=12,align=4
+offset-int=0,offset-last=8,
+align-int=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-last=4,
+align-int=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with int:
+size=12,align=4
+offset-int=0,offset-last=8,
+align-int=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-last=4,
+align-int=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with int:
+size=12,align=4
+offset-int=0,offset-last=8,
+align-int=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with int:
+size=12,align=4
+offset-int=0,offset-last=8,
+align-int=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with int:
+size=24,align=8
+offset-int=0,offset-last=16,
+align-int=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with int:
+size=8,align=4
+offset-int=0,offset-last=4,
+align-int=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with int:
+size=12,align=4
+offset-int=0,offset-last=8,
+align-int=4,align-last=4
--- /dev/null
+++++Array of char in struct starting with long:
+size=16,align=4
+offset-long=0,offset-arrayof-char=4,
+align-long=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with long:
+size=16,align=4
+offset-long=0,offset-arrayof-char=4,
+align-long=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with long:
+size=88,align=8
+offset-long=0,offset-arrayof-double=8,
+align-long=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with long:
+size=88,align=8
+offset-long=0,offset-arrayof-double=8,
+align-long=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-float=4,
+align-long=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-float=4,
+align-long=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-int=4,
+align-long=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-int=4,
+align-long=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-long=4,
+align-long=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-long=4,
+align-long=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of longdouble in struct starting with long:
+size=176,align=16
+offset-long=0,offset-arrayof-longdouble=16,
+align-long=4,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longdouble in struct starting with long:
+size=176,align=16
+offset-long=0,offset-arrayof-longdouble=16,
+align-long=4,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longlong in struct starting with long:
+size=88,align=8
+offset-long=0,offset-arrayof-longlong=8,
+align-long=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with long:
+size=88,align=8
+offset-long=0,offset-arrayof-longlong=8,
+align-long=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-pointer=4,
+align-long=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with long:
+size=44,align=4
+offset-long=0,offset-arrayof-pointer=4,
+align-long=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with long:
+size=24,align=4
+offset-long=0,offset-arrayof-short=4,
+align-long=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with long:
+size=24,align=4
+offset-long=0,offset-arrayof-short=4,
+align-long=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
++++Struct long-char:
+size=8,align=4,offset-long=0,offset-char=4,
+align-long=4,align-char=1
--- /dev/null
++++Struct long-char:
+size=8,align=4,offset-long=0,offset-char=4,
+align-long=4,align-char=1
--- /dev/null
++++Struct long-double:
+size=16,align=8,offset-long=0,offset-double=8,
+align-long=4,align-double=8
--- /dev/null
++++Struct long-double:
+size=16,align=8,offset-long=0,offset-double=8,
+align-long=4,align-double=8
--- /dev/null
++++Struct long-float:
+size=8,align=4,offset-long=0,offset-float=4,
+align-long=4,align-float=4
--- /dev/null
++++Struct long-float:
+size=8,align=4,offset-long=0,offset-float=4,
+align-long=4,align-float=4
--- /dev/null
++++Struct long-int:
+size=8,align=4,offset-long=0,offset-int=4,
+align-long=4,align-int=4
--- /dev/null
++++Struct long-int:
+size=8,align=4,offset-long=0,offset-int=4,
+align-long=4,align-int=4
--- /dev/null
++++Struct long-long:
+size=8,align=4,offset-long=0,offset-long=4,
+align-long=4,align-long=4
--- /dev/null
++++Struct long-long:
+size=8,align=4,offset-long=0,offset-long=4,
+align-long=4,align-long=4
--- /dev/null
++++Struct long-longdouble:
+size=32,align=16,offset-long=0,offset-longdouble=16,
+align-long=4,align-longdouble=16
--- /dev/null
++++Struct long-longdouble:
+size=32,align=16,offset-long=0,offset-longdouble=16,
+align-long=4,align-longdouble=16
--- /dev/null
++++Struct long-longlong:
+size=16,align=8,offset-long=0,offset-longlong=8,
+align-long=4,align-longlong=8
--- /dev/null
++++Struct long-longlong:
+size=16,align=8,offset-long=0,offset-longlong=8,
+align-long=4,align-longlong=8
--- /dev/null
++++Struct long-pointer:
+size=8,align=4,offset-long=0,offset-pointer=4,
+align-long=4,align-pointer=4
--- /dev/null
++++Struct long-pointer:
+size=8,align=4,offset-long=0,offset-pointer=4,
+align-long=4,align-pointer=4
--- /dev/null
++++Struct long-ptrdiff_t:
+size=8,align=4,offset-long=0,offset-ptrdiff_t=4,
+align-long=4,align-ptrdiff_t=4
--- /dev/null
++++Struct long-ptrdiff_t:
+size=8,align=4,offset-long=0,offset-ptrdiff_t=4,
+align-long=4,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-char=4,
+align-long=4,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-char=4,
+align-long=4,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with long:
+size=16,align=8
+offset-long=0,offset-sss-double=8,
+align-long=4,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with long:
+size=16,align=8
+offset-long=0,offset-sss-double=8,
+align-long=4,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-float=4,
+align-long=4,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-float=4,
+align-long=4,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-int=4,
+align-long=4,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-int=4,
+align-long=4,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-long=4,
+align-long=4,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-long=4,
+align-long=4,align-sss-long=4
--- /dev/null
++++Struct longdouble inside struct starting with long:
+size=36,align=12
+offset-long=0,offset-sss-longdouble=12,
+align-long=4,align-sss-longdouble=12
--- /dev/null
++++Struct longdouble inside struct starting with long:
+size=36,align=12
+offset-long=0,offset-sss-longdouble=12,
+align-long=4,align-sss-longdouble=12
--- /dev/null
++++Struct longlong inside struct starting with long:
+size=16,align=8
+offset-long=0,offset-sss-longlong=8,
+align-long=4,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with long:
+size=16,align=8
+offset-long=0,offset-sss-longlong=8,
+align-long=4,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-pointer=4,
+align-long=4,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-pointer=4,
+align-long=4,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-short=4,
+align-long=4,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-sss-short=4,
+align-long=4,align-sss-short=2
--- /dev/null
++++Struct long-short:
+size=8,align=4,offset-long=0,offset-short=4,
+align-long=4,align-short=2
--- /dev/null
++++Struct long-short:
+size=8,align=4,offset-long=0,offset-short=4,
+align-long=4,align-short=2
--- /dev/null
++++Struct long-size_t:
+size=8,align=4,offset-long=0,offset-size_t=4,
+align-long=4,align-size_t=4
--- /dev/null
++++Struct long-size_t:
+size=8,align=4,offset-long=0,offset-size_t=4,
+align-long=4,align-size_t=4
--- /dev/null
++++Struct long-wchar_t:
+size=8,align=4,offset-long=0,offset-wchar_t=4,
+align-long=4,align-wchar_t=4
--- /dev/null
++++Struct long-wchar_t:
+size=8,align=4,offset-long=0,offset-wchar_t=4,
+align-long=4,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-last=4,
+align-long=4,align-last=4
--- /dev/null
++++char zerofield inside struct starting with long:
+size=12,align=4
+offset-long=0,offset-last=8,
+align-long=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-last=4,
+align-long=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with long:
+size=12,align=4
+offset-long=0,offset-last=8,
+align-long=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-last=4,
+align-long=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with long:
+size=12,align=4
+offset-long=0,offset-last=8,
+align-long=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with long:
+size=12,align=4
+offset-long=0,offset-last=8,
+align-long=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with long:
+size=24,align=8
+offset-long=0,offset-last=16,
+align-long=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with long:
+size=8,align=4
+offset-long=0,offset-last=4,
+align-long=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with long:
+size=12,align=4
+offset-long=0,offset-last=8,
+align-long=4,align-last=4
--- /dev/null
+++++Array of char in struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-arrayof-char=16,
+align-longdouble=16,align-arrayof-char=1
+offset-char-a[5]=21,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-arrayof-char=16,
+align-longdouble=16,align-arrayof-char=1
+offset-char-a[5]=21,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with longdouble:
+size=96,align=16
+offset-longdouble=0,offset-arrayof-double=16,
+align-longdouble=16,align-arrayof-double=8
+offset-double-a[5]=56,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with longdouble:
+size=96,align=16
+offset-longdouble=0,offset-arrayof-double=16,
+align-longdouble=16,align-arrayof-double=8
+offset-double-a[5]=56,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with longdouble:
+size=64,align=16
+offset-longdouble=0,offset-arrayof-float=16,
+align-longdouble=16,align-arrayof-float=4
+offset-float-a[5]=36,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with longdouble:
+size=64,align=16
+offset-longdouble=0,offset-arrayof-float=16,
+align-longdouble=16,align-arrayof-float=4
+offset-float-a[5]=36,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with longdouble:
+size=64,align=16
+offset-longdouble=0,offset-arrayof-int=16,
+align-longdouble=16,align-arrayof-int=4
+offset-int-a[5]=36,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with longdouble:
+size=64,align=16
+offset-longdouble=0,offset-arrayof-int=16,
+align-longdouble=16,align-arrayof-int=4
+offset-int-a[5]=36,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with longdouble:
+size=64,align=16
+offset-longdouble=0,offset-arrayof-long=16,
+align-longdouble=16,align-arrayof-long=4
+offset-long-a[5]=36,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with longdouble:
+size=64,align=16
+offset-longdouble=0,offset-arrayof-long=16,
+align-longdouble=16,align-arrayof-long=4
+offset-long-a[5]=36,align-long-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with longdouble:
+size=64,align=16
+offset-longdouble=0,offset-arrayof-pointer=16,
+align-longdouble=16,align-arrayof-pointer=4
+offset-pointer-a[5]=36,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with longdouble:
+size=48,align=16
+offset-longdouble=0,offset-arrayof-short=16,
+align-longdouble=16,align-arrayof-short=2
+offset-short-a[5]=26,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with longdouble:
+size=48,align=16
+offset-longdouble=0,offset-arrayof-short=16,
+align-longdouble=16,align-arrayof-short=2
+offset-short-a[5]=26,align-short-a[5]=2
--- /dev/null
++++Struct longdouble-char:
+size=32,align=16,offset-longdouble=0,offset-char=16,
+align-longdouble=16,align-char=1
--- /dev/null
++++Struct longdouble-char:
+size=32,align=16,offset-longdouble=0,offset-char=16,
+align-longdouble=16,align-char=1
--- /dev/null
++++Struct longdouble-double:
+size=32,align=16,offset-longdouble=0,offset-double=16,
+align-longdouble=16,align-double=8
--- /dev/null
++++Struct longdouble-double:
+size=32,align=16,offset-longdouble=0,offset-double=16,
+align-longdouble=16,align-double=8
--- /dev/null
++++Struct longdouble-float:
+size=32,align=16,offset-longdouble=0,offset-float=16,
+align-longdouble=16,align-float=4
--- /dev/null
++++Struct longdouble-float:
+size=32,align=16,offset-longdouble=0,offset-float=16,
+align-longdouble=16,align-float=4
--- /dev/null
++++Struct longdouble-int:
+size=32,align=16,offset-longdouble=0,offset-int=16,
+align-longdouble=16,align-int=4
--- /dev/null
++++Struct longdouble-int:
+size=32,align=16,offset-longdouble=0,offset-int=16,
+align-longdouble=16,align-int=4
--- /dev/null
++++Struct longdouble-long:
+size=32,align=16,offset-longdouble=0,offset-long=16,
+align-longdouble=16,align-long=4
--- /dev/null
++++Struct longdouble-long:
+size=32,align=16,offset-longdouble=0,offset-long=16,
+align-longdouble=16,align-long=4
--- /dev/null
++++Struct longdouble-longlong:
+size=32,align=16,offset-longdouble=0,offset-longlong=16,
+align-longdouble=16,align-longlong=8
--- /dev/null
++++Struct longdouble-longlong:
+size=32,align=16,offset-longdouble=0,offset-longlong=16,
+align-longdouble=16,align-longlong=8
--- /dev/null
++++Struct longdouble-pointer:
+size=32,align=16,offset-longdouble=0,offset-pointer=16,
+align-longdouble=16,align-pointer=4
--- /dev/null
++++Struct longdouble-pointer:
+size=32,align=16,offset-longdouble=0,offset-pointer=16,
+align-longdouble=16,align-pointer=4
--- /dev/null
++++Struct longdouble-ptrdiff_t:
+size=32,align=16,offset-longdouble=0,offset-ptrdiff_t=16,
+align-longdouble=16,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-char=16,
+align-longdouble=16,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-char=16,
+align-longdouble=16,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-double=16,
+align-longdouble=16,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-double=16,
+align-longdouble=16,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-float=16,
+align-longdouble=16,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-float=16,
+align-longdouble=16,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-int=16,
+align-longdouble=16,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-int=16,
+align-longdouble=16,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-long=16,
+align-longdouble=16,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-long=16,
+align-longdouble=16,align-sss-long=4
--- /dev/null
++++Struct pointer inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-pointer=16,
+align-longdouble=16,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-short=16,
+align-longdouble=16,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-sss-short=16,
+align-longdouble=16,align-sss-short=2
--- /dev/null
++++Struct longdouble-short:
+size=32,align=16,offset-longdouble=0,offset-short=16,
+align-longdouble=16,align-short=2
--- /dev/null
++++Struct longdouble-short:
+size=32,align=16,offset-longdouble=0,offset-short=16,
+align-longdouble=16,align-short=2
--- /dev/null
++++Struct longdouble-size_t:
+size=32,align=16,offset-longdouble=0,offset-size_t=16,
+align-longdouble=16,align-size_t=4
--- /dev/null
++++Struct longdouble-size_t:
+size=32,align=16,offset-longdouble=0,offset-size_t=16,
+align-longdouble=16,align-size_t=4
--- /dev/null
++++Struct longdouble-wchar_t:
+size=32,align=16,offset-longdouble=0,offset-wchar_t=16,
+align-longdouble=16,align-wchar_t=4
--- /dev/null
++++Struct longdouble-wchar_t:
+size=32,align=16,offset-longdouble=0,offset-wchar_t=16,
+align-longdouble=16,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=16,
+align-longdouble=16,align-last=4
--- /dev/null
++++char zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=20,
+align-longdouble=16,align-last=4
--- /dev/null
++++int zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=16,
+align-longdouble=16,align-last=4
--- /dev/null
++++int zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=20,
+align-longdouble=16,align-last=4
--- /dev/null
++++long zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=16,
+align-longdouble=16,align-last=4
--- /dev/null
++++long zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=20,
+align-longdouble=16,align-last=4
--- /dev/null
++++short zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=16,
+align-longdouble=16,align-last=4
--- /dev/null
++++short zerofield inside struct starting with longdouble:
+size=32,align=16
+offset-longdouble=0,offset-last=20,
+align-longdouble=16,align-last=4
--- /dev/null
+++++Array of char in struct starting with longlong:
+size=24,align=8
+offset-longlong=0,offset-arrayof-char=8,
+align-longlong=8,align-arrayof-char=1
+offset-char-a[5]=13,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with longlong:
+size=24,align=8
+offset-longlong=0,offset-arrayof-char=8,
+align-longlong=8,align-arrayof-char=1
+offset-char-a[5]=13,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with longlong:
+size=88,align=8
+offset-longlong=0,offset-arrayof-double=8,
+align-longlong=8,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with longlong:
+size=88,align=8
+offset-longlong=0,offset-arrayof-double=8,
+align-longlong=8,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-float=8,
+align-longlong=8,align-arrayof-float=4
+offset-float-a[5]=28,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-float=8,
+align-longlong=8,align-arrayof-float=4
+offset-float-a[5]=28,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-int=8,
+align-longlong=8,align-arrayof-int=4
+offset-int-a[5]=28,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-int=8,
+align-longlong=8,align-arrayof-int=4
+offset-int-a[5]=28,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-long=8,
+align-longlong=8,align-arrayof-long=4
+offset-long-a[5]=28,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-long=8,
+align-longlong=8,align-arrayof-long=4
+offset-long-a[5]=28,align-long-a[5]=4
--- /dev/null
+++++Array of longlong in struct starting with longlong:
+size=88,align=8
+offset-longlong=0,offset-arrayof-longlong=8,
+align-longlong=8,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with longlong:
+size=88,align=8
+offset-longlong=0,offset-arrayof-longlong=8,
+align-longlong=8,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-pointer=8,
+align-longlong=8,align-arrayof-pointer=4
+offset-pointer-a[5]=28,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with longlong:
+size=48,align=8
+offset-longlong=0,offset-arrayof-pointer=8,
+align-longlong=8,align-arrayof-pointer=4
+offset-pointer-a[5]=28,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with longlong:
+size=32,align=8
+offset-longlong=0,offset-arrayof-short=8,
+align-longlong=8,align-arrayof-short=2
+offset-short-a[5]=18,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with longlong:
+size=32,align=8
+offset-longlong=0,offset-arrayof-short=8,
+align-longlong=8,align-arrayof-short=2
+offset-short-a[5]=18,align-short-a[5]=2
--- /dev/null
++++Struct longlong-char:
+size=16,align=8,offset-longlong=0,offset-char=8,
+align-longlong=8,align-char=1
--- /dev/null
++++Struct longlong-char:
+size=16,align=8,offset-longlong=0,offset-char=8,
+align-longlong=8,align-char=1
--- /dev/null
++++Struct longlong-double:
+size=16,align=8,offset-longlong=0,offset-double=8,
+align-longlong=8,align-double=8
--- /dev/null
++++Struct longlong-double:
+size=16,align=8,offset-longlong=0,offset-double=8,
+align-longlong=8,align-double=8
--- /dev/null
++++Struct longlong-float:
+size=16,align=8,offset-longlong=0,offset-float=8,
+align-longlong=8,align-float=4
--- /dev/null
++++Struct longlong-float:
+size=16,align=8,offset-longlong=0,offset-float=8,
+align-longlong=8,align-float=4
--- /dev/null
++++Struct longlong-int:
+size=16,align=8,offset-longlong=0,offset-int=8,
+align-longlong=8,align-int=4
--- /dev/null
++++Struct longlong-int:
+size=16,align=8,offset-longlong=0,offset-int=8,
+align-longlong=8,align-int=4
--- /dev/null
++++Struct longlong-long:
+size=16,align=8,offset-longlong=0,offset-long=8,
+align-longlong=8,align-long=4
--- /dev/null
++++Struct longlong-long:
+size=16,align=8,offset-longlong=0,offset-long=8,
+align-longlong=8,align-long=4
--- /dev/null
++++Struct longlong-longdouble:
+size=32,align=16,offset-longlong=0,offset-longdouble=16,
+align-longlong=8,align-longdouble=16
--- /dev/null
++++Struct longlong-longdouble:
+size=32,align=16,offset-longlong=0,offset-longdouble=16,
+align-longlong=8,align-longdouble=16
--- /dev/null
++++Struct longlong-longlong:
+size=16,align=8,offset-longlong=0,offset-longlong=8,
+align-longlong=8,align-longlong=8
--- /dev/null
++++Struct longlong-longlong:
+size=16,align=8,offset-longlong=0,offset-longlong=8,
+align-longlong=8,align-longlong=8
--- /dev/null
++++Struct longlong-pointer:
+size=16,align=8,offset-longlong=0,offset-pointer=8,
+align-longlong=8,align-pointer=4
--- /dev/null
++++Struct longlong-pointer:
+size=16,align=8,offset-longlong=0,offset-pointer=8,
+align-longlong=8,align-pointer=4
--- /dev/null
++++Struct longlong-ptrdiff_t:
+size=16,align=8,offset-longlong=0,offset-ptrdiff_t=8,
+align-longlong=8,align-ptrdiff_t=4
--- /dev/null
++++Struct longlong-ptrdiff_t:
+size=16,align=8,offset-longlong=0,offset-ptrdiff_t=8,
+align-longlong=8,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-char=8,
+align-longlong=8,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-char=8,
+align-longlong=8,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-double=8,
+align-longlong=8,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-double=8,
+align-longlong=8,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-float=8,
+align-longlong=8,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-float=8,
+align-longlong=8,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-int=8,
+align-longlong=8,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-int=8,
+align-longlong=8,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-long=8,
+align-longlong=8,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-long=8,
+align-longlong=8,align-sss-long=4
--- /dev/null
++++Struct longlong inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-longlong=8,
+align-longlong=8,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-longlong=8,
+align-longlong=8,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-pointer=8,
+align-longlong=8,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-pointer=8,
+align-longlong=8,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-short=8,
+align-longlong=8,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-sss-short=8,
+align-longlong=8,align-sss-short=2
--- /dev/null
++++Struct longlong-short:
+size=16,align=8,offset-longlong=0,offset-short=8,
+align-longlong=8,align-short=2
--- /dev/null
++++Struct longlong-short:
+size=16,align=8,offset-longlong=0,offset-short=8,
+align-longlong=8,align-short=2
--- /dev/null
++++Struct longlong-size_t:
+size=16,align=8,offset-longlong=0,offset-size_t=8,
+align-longlong=8,align-size_t=4
--- /dev/null
++++Struct longlong-size_t:
+size=16,align=8,offset-longlong=0,offset-size_t=8,
+align-longlong=8,align-size_t=4
--- /dev/null
++++Struct longlong-wchar_t:
+size=16,align=8,offset-longlong=0,offset-wchar_t=8,
+align-longlong=8,align-wchar_t=4
--- /dev/null
++++Struct longlong-wchar_t:
+size=16,align=8,offset-longlong=0,offset-wchar_t=8,
+align-longlong=8,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=8,
+align-longlong=8,align-last=4
--- /dev/null
++++char zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=12,
+align-longlong=8,align-last=4
--- /dev/null
++++int zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=8,
+align-longlong=8,align-last=4
--- /dev/null
++++int zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=12,
+align-longlong=8,align-last=4
--- /dev/null
++++long zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=8,
+align-longlong=8,align-last=4
--- /dev/null
++++long zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=12,
+align-longlong=8,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with longlong:
+size=24,align=8
+offset-longlong=0,offset-last=16,
+align-longlong=8,align-last=4
--- /dev/null
++++short zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=8,
+align-longlong=8,align-last=4
--- /dev/null
++++short zerofield inside struct starting with longlong:
+size=16,align=8
+offset-longlong=0,offset-last=12,
+align-longlong=8,align-last=4
--- /dev/null
+++++Array of char in struct starting with pointer:
+size=16,align=4
+offset-pointer=0,offset-arrayof-char=4,
+align-pointer=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with pointer:
+size=16,align=4
+offset-pointer=0,offset-arrayof-char=4,
+align-pointer=4,align-arrayof-char=1
+offset-char-a[5]=9,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with pointer:
+size=88,align=8
+offset-pointer=0,offset-arrayof-double=8,
+align-pointer=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with pointer:
+size=88,align=8
+offset-pointer=0,offset-arrayof-double=8,
+align-pointer=4,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-float=4,
+align-pointer=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-float=4,
+align-pointer=4,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-int=4,
+align-pointer=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-int=4,
+align-pointer=4,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-long=4,
+align-pointer=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-long=4,
+align-pointer=4,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of longdouble in struct starting with pointer:
+size=176,align=16
+offset-pointer=0,offset-arrayof-longdouble=16,
+align-pointer=4,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longlong in struct starting with pointer:
+size=88,align=8
+offset-pointer=0,offset-arrayof-longlong=8,
+align-pointer=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with pointer:
+size=88,align=8
+offset-pointer=0,offset-arrayof-longlong=8,
+align-pointer=4,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-pointer=4,
+align-pointer=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with pointer:
+size=44,align=4
+offset-pointer=0,offset-arrayof-pointer=4,
+align-pointer=4,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with pointer:
+size=24,align=4
+offset-pointer=0,offset-arrayof-short=4,
+align-pointer=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with pointer:
+size=24,align=4
+offset-pointer=0,offset-arrayof-short=4,
+align-pointer=4,align-arrayof-short=2
+offset-short-a[5]=14,align-short-a[5]=2
--- /dev/null
++++Struct pointer-char:
+size=8,align=4,offset-pointer=0,offset-char=4,
+align-pointer=4,align-char=1
--- /dev/null
++++Struct pointer-char:
+size=8,align=4,offset-pointer=0,offset-char=4,
+align-pointer=4,align-char=1
--- /dev/null
++++Struct pointer-double:
+size=16,align=8,offset-pointer=0,offset-double=8,
+align-pointer=4,align-double=8
--- /dev/null
++++Struct pointer-double:
+size=16,align=8,offset-pointer=0,offset-double=8,
+align-pointer=4,align-double=8
--- /dev/null
++++Struct pointer-float:
+size=8,align=4,offset-pointer=0,offset-float=4,
+align-pointer=4,align-float=4
--- /dev/null
++++Struct pointer-float:
+size=8,align=4,offset-pointer=0,offset-float=4,
+align-pointer=4,align-float=4
--- /dev/null
++++Struct pointer-int:
+size=8,align=4,offset-pointer=0,offset-int=4,
+align-pointer=4,align-int=4
--- /dev/null
++++Struct pointer-int:
+size=8,align=4,offset-pointer=0,offset-int=4,
+align-pointer=4,align-int=4
--- /dev/null
++++Struct pointer-long:
+size=8,align=4,offset-pointer=0,offset-long=4,
+align-pointer=4,align-long=4
--- /dev/null
++++Struct pointer-long:
+size=8,align=4,offset-pointer=0,offset-long=4,
+align-pointer=4,align-long=4
--- /dev/null
++++Struct pointer-longdouble:
+size=32,align=16,offset-pointer=0,offset-longdouble=16,
+align-pointer=4,align-longdouble=16
--- /dev/null
++++Struct pointer-longdouble:
+size=32,align=16,offset-pointer=0,offset-longdouble=16,
+align-pointer=4,align-longdouble=16
--- /dev/null
++++Struct pointer-longlong:
+size=16,align=8,offset-pointer=0,offset-longlong=8,
+align-pointer=4,align-longlong=8
--- /dev/null
++++Struct pointer-longlong:
+size=16,align=8,offset-pointer=0,offset-longlong=8,
+align-pointer=4,align-longlong=8
--- /dev/null
++++Struct pointer-pointer:
+size=8,align=4,offset-pointer=0,offset-pointer=4,
+align-pointer=4,align-pointer=4
--- /dev/null
++++Struct pointer-pointer:
+size=8,align=4,offset-pointer=0,offset-pointer=4,
+align-pointer=4,align-pointer=4
--- /dev/null
++++Struct pointer-ptrdiff_t:
+size=8,align=4,offset-pointer=0,offset-ptrdiff_t=4,
+align-pointer=4,align-ptrdiff_t=4
--- /dev/null
++++Struct pointer-ptrdiff_t:
+size=8,align=4,offset-pointer=0,offset-ptrdiff_t=4,
+align-pointer=4,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-char=4,
+align-pointer=4,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-char=4,
+align-pointer=4,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with pointer:
+size=16,align=8
+offset-pointer=0,offset-sss-double=8,
+align-pointer=4,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with pointer:
+size=16,align=8
+offset-pointer=0,offset-sss-double=8,
+align-pointer=4,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-float=4,
+align-pointer=4,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-float=4,
+align-pointer=4,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-int=4,
+align-pointer=4,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-int=4,
+align-pointer=4,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-long=4,
+align-pointer=4,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-long=4,
+align-pointer=4,align-sss-long=4
--- /dev/null
++++Struct longdouble inside struct starting with pointer:
+size=36,align=12
+offset-pointer=0,offset-sss-longdouble=12,
+align-pointer=4,align-sss-longdouble=12
--- /dev/null
++++Struct longlong inside struct starting with pointer:
+size=16,align=8
+offset-pointer=0,offset-sss-longlong=8,
+align-pointer=4,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with pointer:
+size=16,align=8
+offset-pointer=0,offset-sss-longlong=8,
+align-pointer=4,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-pointer=4,
+align-pointer=4,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-pointer=4,
+align-pointer=4,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-short=4,
+align-pointer=4,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-sss-short=4,
+align-pointer=4,align-sss-short=2
--- /dev/null
++++Struct pointer-short:
+size=8,align=4,offset-pointer=0,offset-short=4,
+align-pointer=4,align-short=2
--- /dev/null
++++Struct pointer-short:
+size=8,align=4,offset-pointer=0,offset-short=4,
+align-pointer=4,align-short=2
--- /dev/null
++++Struct pointer-size_t:
+size=8,align=4,offset-pointer=0,offset-size_t=4,
+align-pointer=4,align-size_t=4
--- /dev/null
++++Struct pointer-size_t:
+size=8,align=4,offset-pointer=0,offset-size_t=4,
+align-pointer=4,align-size_t=4
--- /dev/null
++++Struct pointer-wchar_t:
+size=8,align=4,offset-pointer=0,offset-wchar_t=4,
+align-pointer=4,align-wchar_t=4
--- /dev/null
++++Struct pointer-wchar_t:
+size=8,align=4,offset-pointer=0,offset-wchar_t=4,
+align-pointer=4,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-last=4,
+align-pointer=4,align-last=4
--- /dev/null
++++char zerofield inside struct starting with pointer:
+size=12,align=4
+offset-pointer=0,offset-last=8,
+align-pointer=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-last=4,
+align-pointer=4,align-last=4
--- /dev/null
++++int zerofield inside struct starting with pointer:
+size=12,align=4
+offset-pointer=0,offset-last=8,
+align-pointer=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-last=4,
+align-pointer=4,align-last=4
--- /dev/null
++++long zerofield inside struct starting with pointer:
+size=12,align=4
+offset-pointer=0,offset-last=8,
+align-pointer=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with pointer:
+size=12,align=4
+offset-pointer=0,offset-last=8,
+align-pointer=4,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with pointer:
+size=24,align=8
+offset-pointer=0,offset-last=16,
+align-pointer=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with pointer:
+size=8,align=4
+offset-pointer=0,offset-last=4,
+align-pointer=4,align-last=4
--- /dev/null
++++short zerofield inside struct starting with pointer:
+size=12,align=4
+offset-pointer=0,offset-last=8,
+align-pointer=4,align-last=4
--- /dev/null
++++Struct ptrdiff_t-char:
+size=8,align=4,offset-ptrdiff_t=0,offset-char=4,
+align-ptrdiff_t=4,align-char=1
--- /dev/null
++++Struct ptrdiff_t-char:
+size=8,align=4,offset-ptrdiff_t=0,offset-char=4,
+align-ptrdiff_t=4,align-char=1
--- /dev/null
++++Struct ptrdiff_t-double:
+size=16,align=8,offset-ptrdiff_t=0,offset-double=8,
+align-ptrdiff_t=4,align-double=8
--- /dev/null
++++Struct ptrdiff_t-double:
+size=16,align=8,offset-ptrdiff_t=0,offset-double=8,
+align-ptrdiff_t=4,align-double=8
--- /dev/null
++++Struct ptrdiff_t-float:
+size=8,align=4,offset-ptrdiff_t=0,offset-float=4,
+align-ptrdiff_t=4,align-float=4
--- /dev/null
++++Struct ptrdiff_t-float:
+size=8,align=4,offset-ptrdiff_t=0,offset-float=4,
+align-ptrdiff_t=4,align-float=4
--- /dev/null
++++Struct ptrdiff_t-int:
+size=8,align=4,offset-ptrdiff_t=0,offset-int=4,
+align-ptrdiff_t=4,align-int=4
--- /dev/null
++++Struct ptrdiff_t-int:
+size=8,align=4,offset-ptrdiff_t=0,offset-int=4,
+align-ptrdiff_t=4,align-int=4
--- /dev/null
++++Struct ptrdiff_t-long:
+size=8,align=4,offset-ptrdiff_t=0,offset-long=4,
+align-ptrdiff_t=4,align-long=4
--- /dev/null
++++Struct ptrdiff_t-long:
+size=8,align=4,offset-ptrdiff_t=0,offset-long=4,
+align-ptrdiff_t=4,align-long=4
--- /dev/null
++++Struct ptrdiff_t-longdouble:
+size=32,align=16,offset-ptrdiff_t=0,offset-longdouble=16,
+align-ptrdiff_t=4,align-longdouble=16
--- /dev/null
++++Struct ptrdiff_t-longlong:
+size=16,align=8,offset-ptrdiff_t=0,offset-longlong=8,
+align-ptrdiff_t=4,align-longlong=8
--- /dev/null
++++Struct ptrdiff_t-longlong:
+size=16,align=8,offset-ptrdiff_t=0,offset-longlong=8,
+align-ptrdiff_t=4,align-longlong=8
--- /dev/null
++++Struct ptrdiff_t-pointer:
+size=8,align=4,offset-ptrdiff_t=0,offset-pointer=4,
+align-ptrdiff_t=4,align-pointer=4
--- /dev/null
++++Struct ptrdiff_t-pointer:
+size=8,align=4,offset-ptrdiff_t=0,offset-pointer=4,
+align-ptrdiff_t=4,align-pointer=4
--- /dev/null
++++Struct ptrdiff_t-ptrdiff_t:
+size=8,align=4,offset-ptrdiff_t=0,offset-ptrdiff_t=4,
+align-ptrdiff_t=4,align-ptrdiff_t=4
--- /dev/null
++++Struct ptrdiff_t-ptrdiff_t:
+size=8,align=4,offset-ptrdiff_t=0,offset-ptrdiff_t=4,
+align-ptrdiff_t=4,align-ptrdiff_t=4
--- /dev/null
++++Struct ptrdiff_t-short:
+size=8,align=4,offset-ptrdiff_t=0,offset-short=4,
+align-ptrdiff_t=4,align-short=2
--- /dev/null
++++Struct ptrdiff_t-short:
+size=8,align=4,offset-ptrdiff_t=0,offset-short=4,
+align-ptrdiff_t=4,align-short=2
--- /dev/null
++++Struct ptrdiff_t-size_t:
+size=8,align=4,offset-ptrdiff_t=0,offset-size_t=4,
+align-ptrdiff_t=4,align-size_t=4
--- /dev/null
++++Struct ptrdiff_t-size_t:
+size=8,align=4,offset-ptrdiff_t=0,offset-size_t=4,
+align-ptrdiff_t=4,align-size_t=4
--- /dev/null
++++Struct ptrdiff_t-wchar_t:
+size=8,align=4,offset-ptrdiff_t=0,offset-wchar_t=4,
+align-ptrdiff_t=4,align-wchar_t=4
--- /dev/null
++++Struct ptrdiff_t-wchar_t:
+size=8,align=4,offset-ptrdiff_t=0,offset-wchar_t=4,
+align-ptrdiff_t=4,align-wchar_t=4
--- /dev/null
+++++Array of char in struct starting with short:
+size=12,align=2
+offset-short=0,offset-arrayof-char=2,
+align-short=2,align-arrayof-char=1
+offset-char-a[5]=7,align-char-a[5]=1
--- /dev/null
+++++Array of char in struct starting with short:
+size=12,align=2
+offset-short=0,offset-arrayof-char=2,
+align-short=2,align-arrayof-char=1
+offset-char-a[5]=7,align-char-a[5]=1
--- /dev/null
+++++Array of double in struct starting with short:
+size=88,align=8
+offset-short=0,offset-arrayof-double=8,
+align-short=2,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of double in struct starting with short:
+size=88,align=8
+offset-short=0,offset-arrayof-double=8,
+align-short=2,align-arrayof-double=8
+offset-double-a[5]=48,align-double-a[5]=8
--- /dev/null
+++++Array of float in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-float=4,
+align-short=2,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of float in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-float=4,
+align-short=2,align-arrayof-float=4
+offset-float-a[5]=24,align-float-a[5]=4
--- /dev/null
+++++Array of int in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-int=4,
+align-short=2,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of int in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-int=4,
+align-short=2,align-arrayof-int=4
+offset-int-a[5]=24,align-int-a[5]=4
--- /dev/null
+++++Array of long in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-long=4,
+align-short=2,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of long in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-long=4,
+align-short=2,align-arrayof-long=4
+offset-long-a[5]=24,align-long-a[5]=4
--- /dev/null
+++++Array of longdouble in struct starting with short:
+size=176,align=16
+offset-short=0,offset-arrayof-longdouble=16,
+align-short=2,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longdouble in struct starting with short:
+size=176,align=16
+offset-short=0,offset-arrayof-longdouble=16,
+align-short=2,align-arrayof-longdouble=16
+offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- /dev/null
+++++Array of longlong in struct starting with short:
+size=88,align=8
+offset-short=0,offset-arrayof-longlong=8,
+align-short=2,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of longlong in struct starting with short:
+size=88,align=8
+offset-short=0,offset-arrayof-longlong=8,
+align-short=2,align-arrayof-longlong=8
+offset-longlong-a[5]=48,align-longlong-a[5]=8
--- /dev/null
+++++Array of pointer in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-pointer=4,
+align-short=2,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of pointer in struct starting with short:
+size=44,align=4
+offset-short=0,offset-arrayof-pointer=4,
+align-short=2,align-arrayof-pointer=4
+offset-pointer-a[5]=24,align-pointer-a[5]=4
--- /dev/null
+++++Array of short in struct starting with short:
+size=22,align=2
+offset-short=0,offset-arrayof-short=2,
+align-short=2,align-arrayof-short=2
+offset-short-a[5]=12,align-short-a[5]=2
--- /dev/null
+++++Array of short in struct starting with short:
+size=22,align=2
+offset-short=0,offset-arrayof-short=2,
+align-short=2,align-arrayof-short=2
+offset-short-a[5]=12,align-short-a[5]=2
--- /dev/null
++++Struct short-char:
+size=4,align=2,offset-short=0,offset-char=2,
+align-short=2,align-char=1
--- /dev/null
++++Struct short-char:
+size=4,align=2,offset-short=0,offset-char=2,
+align-short=2,align-char=1
--- /dev/null
++++Struct short-double:
+size=16,align=8,offset-short=0,offset-double=8,
+align-short=2,align-double=8
--- /dev/null
++++Struct short-double:
+size=16,align=8,offset-short=0,offset-double=8,
+align-short=2,align-double=8
--- /dev/null
++++Struct short-float:
+size=8,align=4,offset-short=0,offset-float=4,
+align-short=2,align-float=4
--- /dev/null
++++Struct short-float:
+size=8,align=4,offset-short=0,offset-float=4,
+align-short=2,align-float=4
--- /dev/null
++++Struct short-int:
+size=8,align=4,offset-short=0,offset-int=4,
+align-short=2,align-int=4
--- /dev/null
++++Struct short-int:
+size=8,align=4,offset-short=0,offset-int=4,
+align-short=2,align-int=4
--- /dev/null
++++Struct short-long:
+size=8,align=4,offset-short=0,offset-long=4,
+align-short=2,align-long=4
--- /dev/null
++++Struct short-long:
+size=8,align=4,offset-short=0,offset-long=4,
+align-short=2,align-long=4
--- /dev/null
++++Struct short-longdouble:
+size=32,align=16,offset-short=0,offset-longdouble=16,
+align-short=2,align-longdouble=16
--- /dev/null
++++Struct short-longdouble:
+size=32,align=16,offset-short=0,offset-longdouble=16,
+align-short=2,align-longdouble=16
--- /dev/null
++++Struct short-longlong:
+size=16,align=8,offset-short=0,offset-longlong=8,
+align-short=2,align-longlong=8
--- /dev/null
++++Struct short-longlong:
+size=16,align=8,offset-short=0,offset-longlong=8,
+align-short=2,align-longlong=8
--- /dev/null
++++Struct short-pointer:
+size=8,align=4,offset-short=0,offset-pointer=4,
+align-short=2,align-pointer=4
--- /dev/null
++++Struct short-pointer:
+size=8,align=4,offset-short=0,offset-pointer=4,
+align-short=2,align-pointer=4
--- /dev/null
++++Struct short-ptrdiff_t:
+size=8,align=4,offset-short=0,offset-ptrdiff_t=4,
+align-short=2,align-ptrdiff_t=4
--- /dev/null
++++Struct short-ptrdiff_t:
+size=8,align=4,offset-short=0,offset-ptrdiff_t=4,
+align-short=2,align-ptrdiff_t=4
--- /dev/null
++++Struct char inside struct starting with short:
+size=4,align=2
+offset-short=0,offset-sss-char=2,
+align-short=2,align-sss-char=1
--- /dev/null
++++Struct char inside struct starting with short:
+size=4,align=2
+offset-short=0,offset-sss-char=2,
+align-short=2,align-sss-char=1
--- /dev/null
++++Struct double inside struct starting with short:
+size=16,align=8
+offset-short=0,offset-sss-double=8,
+align-short=2,align-sss-double=8
--- /dev/null
++++Struct double inside struct starting with short:
+size=16,align=8
+offset-short=0,offset-sss-double=8,
+align-short=2,align-sss-double=8
--- /dev/null
++++Struct float inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-float=4,
+align-short=2,align-sss-float=4
--- /dev/null
++++Struct float inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-float=4,
+align-short=2,align-sss-float=4
--- /dev/null
++++Struct int inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-int=4,
+align-short=2,align-sss-int=4
--- /dev/null
++++Struct int inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-int=4,
+align-short=2,align-sss-int=4
--- /dev/null
++++Struct long inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-long=4,
+align-short=2,align-sss-long=4
--- /dev/null
++++Struct long inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-long=4,
+align-short=2,align-sss-long=4
--- /dev/null
++++Struct longdouble inside struct starting with short:
+size=36,align=12
+offset-short=0,offset-sss-longdouble=12,
+align-short=2,align-sss-longdouble=12
--- /dev/null
++++Struct longdouble inside struct starting with short:
+size=36,align=12
+offset-short=0,offset-sss-longdouble=12,
+align-short=2,align-sss-longdouble=12
--- /dev/null
++++Struct longlong inside struct starting with short:
+size=16,align=8
+offset-short=0,offset-sss-longlong=8,
+align-short=2,align-sss-longlong=8
--- /dev/null
++++Struct longlong inside struct starting with short:
+size=16,align=8
+offset-short=0,offset-sss-longlong=8,
+align-short=2,align-sss-longlong=8
--- /dev/null
++++Struct pointer inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-pointer=4,
+align-short=2,align-sss-pointer=4
--- /dev/null
++++Struct pointer inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-sss-pointer=4,
+align-short=2,align-sss-pointer=4
--- /dev/null
++++Struct short inside struct starting with short:
+size=4,align=2
+offset-short=0,offset-sss-short=2,
+align-short=2,align-sss-short=2
--- /dev/null
++++Struct short inside struct starting with short:
+size=4,align=2
+offset-short=0,offset-sss-short=2,
+align-short=2,align-sss-short=2
--- /dev/null
++++Struct short-short:
+size=4,align=2,offset-short=0,offset-short=2,
+align-short=2,align-short=2
--- /dev/null
++++Struct short-short:
+size=4,align=2,offset-short=0,offset-short=2,
+align-short=2,align-short=2
--- /dev/null
++++Struct short-size_t:
+size=8,align=4,offset-short=0,offset-size_t=4,
+align-short=2,align-size_t=4
--- /dev/null
++++Struct short-size_t:
+size=8,align=4,offset-short=0,offset-size_t=4,
+align-short=2,align-size_t=4
--- /dev/null
++++Struct short-wchar_t:
+size=8,align=4,offset-short=0,offset-wchar_t=4,
+align-short=2,align-wchar_t=4
--- /dev/null
++++Struct short-wchar_t:
+size=8,align=4,offset-short=0,offset-wchar_t=4,
+align-short=2,align-wchar_t=4
--- /dev/null
++++char zerofield inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-last=4,
+align-short=2,align-last=4
--- /dev/null
++++char zerofield inside struct starting with short:
+size=12,align=4
+offset-short=0,offset-last=8,
+align-short=2,align-last=4
--- /dev/null
++++int zerofield inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-last=4,
+align-short=2,align-last=4
--- /dev/null
++++int zerofield inside struct starting with short:
+size=12,align=4
+offset-short=0,offset-last=8,
+align-short=2,align-last=4
--- /dev/null
++++long zerofield inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-last=4,
+align-short=2,align-last=4
--- /dev/null
++++long zerofield inside struct starting with short:
+size=12,align=4
+offset-short=0,offset-last=8,
+align-short=2,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with short:
+size=12,align=4
+offset-short=0,offset-last=8,
+align-short=2,align-last=4
--- /dev/null
++++longlong zerofield inside struct starting with short:
+size=24,align=8
+offset-short=0,offset-last=16,
+align-short=2,align-last=4
--- /dev/null
++++short zerofield inside struct starting with short:
+size=8,align=4
+offset-short=0,offset-last=4,
+align-short=2,align-last=4
--- /dev/null
++++short zerofield inside struct starting with short:
+size=12,align=4
+offset-short=0,offset-last=8,
+align-short=2,align-last=4
--- /dev/null
++++Struct size_t-char:
+size=8,align=4,offset-size_t=0,offset-char=4,
+align-size_t=4,align-char=1
--- /dev/null
++++Struct size_t-char:
+size=8,align=4,offset-size_t=0,offset-char=4,
+align-size_t=4,align-char=1
--- /dev/null
++++Struct size_t-double:
+size=16,align=8,offset-size_t=0,offset-double=8,
+align-size_t=4,align-double=8
--- /dev/null
++++Struct size_t-double:
+size=16,align=8,offset-size_t=0,offset-double=8,
+align-size_t=4,align-double=8
--- /dev/null
++++Struct size_t-float:
+size=8,align=4,offset-size_t=0,offset-float=4,
+align-size_t=4,align-float=4
--- /dev/null
++++Struct size_t-float:
+size=8,align=4,offset-size_t=0,offset-float=4,
+align-size_t=4,align-float=4
--- /dev/null
++++Struct size_t-int:
+size=8,align=4,offset-size_t=0,offset-int=4,
+align-size_t=4,align-int=4
--- /dev/null
++++Struct size_t-int:
+size=8,align=4,offset-size_t=0,offset-int=4,
+align-size_t=4,align-int=4
--- /dev/null
++++Struct size_t-long:
+size=8,align=4,offset-size_t=0,offset-long=4,
+align-size_t=4,align-long=4
--- /dev/null
++++Struct size_t-long:
+size=8,align=4,offset-size_t=0,offset-long=4,
+align-size_t=4,align-long=4
--- /dev/null
++++Struct size_t-longdouble:
+size=32,align=16,offset-size_t=0,offset-longdouble=16,
+align-size_t=4,align-longdouble=16
--- /dev/null
++++Struct size_t-longdouble:
+size=32,align=16,offset-size_t=0,offset-longdouble=16,
+align-size_t=4,align-longdouble=16
--- /dev/null
++++Struct size_t-longlong:
+size=16,align=8,offset-size_t=0,offset-longlong=8,
+align-size_t=4,align-longlong=8
--- /dev/null
++++Struct size_t-longlong:
+size=16,align=8,offset-size_t=0,offset-longlong=8,
+align-size_t=4,align-longlong=8
--- /dev/null
++++Struct size_t-pointer:
+size=8,align=4,offset-size_t=0,offset-pointer=4,
+align-size_t=4,align-pointer=4
--- /dev/null
++++Struct size_t-pointer:
+size=8,align=4,offset-size_t=0,offset-pointer=4,
+align-size_t=4,align-pointer=4
--- /dev/null
++++Struct size_t-ptrdiff_t:
+size=8,align=4,offset-size_t=0,offset-ptrdiff_t=4,
+align-size_t=4,align-ptrdiff_t=4
--- /dev/null
++++Struct size_t-ptrdiff_t:
+size=8,align=4,offset-size_t=0,offset-ptrdiff_t=4,
+align-size_t=4,align-ptrdiff_t=4
--- /dev/null
++++Struct size_t-short:
+size=8,align=4,offset-size_t=0,offset-short=4,
+align-size_t=4,align-short=2
--- /dev/null
++++Struct size_t-short:
+size=8,align=4,offset-size_t=0,offset-short=4,
+align-size_t=4,align-short=2
--- /dev/null
++++Struct size_t-size_t:
+size=8,align=4,offset-size_t=0,offset-size_t=4,
+align-size_t=4,align-size_t=4
--- /dev/null
++++Struct size_t-size_t:
+size=8,align=4,offset-size_t=0,offset-size_t=4,
+align-size_t=4,align-size_t=4
--- /dev/null
++++Struct size_t-wchar_t:
+size=8,align=4,offset-size_t=0,offset-wchar_t=4,
+align-size_t=4,align-wchar_t=4
--- /dev/null
++++Struct size_t-wchar_t:
+size=8,align=4,offset-size_t=0,offset-wchar_t=4,
+align-size_t=4,align-wchar_t=4
--- /dev/null
++++Struct wchar_t-char:
+size=8,align=4,offset-wchar_t=0,offset-char=4,
+align-wchar_t=4,align-char=1
--- /dev/null
++++Struct wchar_t-char:
+size=8,align=4,offset-wchar_t=0,offset-char=4,
+align-wchar_t=4,align-char=1
--- /dev/null
++++Struct wchar_t-double:
+size=16,align=8,offset-wchar_t=0,offset-double=8,
+align-wchar_t=4,align-double=8
--- /dev/null
++++Struct wchar_t-double:
+size=16,align=8,offset-wchar_t=0,offset-double=8,
+align-wchar_t=4,align-double=8
--- /dev/null
++++Struct wchar_t-float:
+size=8,align=4,offset-wchar_t=0,offset-float=4,
+align-wchar_t=4,align-float=4
--- /dev/null
++++Struct wchar_t-float:
+size=8,align=4,offset-wchar_t=0,offset-float=4,
+align-wchar_t=4,align-float=4
--- /dev/null
++++Struct wchar_t-int:
+size=8,align=4,offset-wchar_t=0,offset-int=4,
+align-wchar_t=4,align-int=4
--- /dev/null
++++Struct wchar_t-int:
+size=8,align=4,offset-wchar_t=0,offset-int=4,
+align-wchar_t=4,align-int=4
--- /dev/null
++++Struct wchar_t-long:
+size=8,align=4,offset-wchar_t=0,offset-long=4,
+align-wchar_t=4,align-long=4
--- /dev/null
++++Struct wchar_t-long:
+size=8,align=4,offset-wchar_t=0,offset-long=4,
+align-wchar_t=4,align-long=4
--- /dev/null
++++Struct wchar_t-longdouble:
+size=32,align=16,offset-wchar_t=0,offset-longdouble=16,
+align-wchar_t=4,align-longdouble=16
--- /dev/null
++++Struct wchar_t-longdouble:
+size=32,align=16,offset-wchar_t=0,offset-longdouble=16,
+align-wchar_t=4,align-longdouble=16
--- /dev/null
++++Struct wchar_t-longlong:
+size=16,align=8,offset-wchar_t=0,offset-longlong=8,
+align-wchar_t=4,align-longlong=8
--- /dev/null
++++Struct wchar_t-longlong:
+size=16,align=8,offset-wchar_t=0,offset-longlong=8,
+align-wchar_t=4,align-longlong=8
--- /dev/null
++++Struct wchar_t-pointer:
+size=8,align=4,offset-wchar_t=0,offset-pointer=4,
+align-wchar_t=4,align-pointer=4
--- /dev/null
++++Struct wchar_t-pointer:
+size=8,align=4,offset-wchar_t=0,offset-pointer=4,
+align-wchar_t=4,align-pointer=4
--- /dev/null
++++Struct wchar_t-ptrdiff_t:
+size=8,align=4,offset-wchar_t=0,offset-ptrdiff_t=4,
+align-wchar_t=4,align-ptrdiff_t=4
--- /dev/null
++++Struct wchar_t-ptrdiff_t:
+size=8,align=4,offset-wchar_t=0,offset-ptrdiff_t=4,
+align-wchar_t=4,align-ptrdiff_t=4
--- /dev/null
++++Struct wchar_t-short:
+size=8,align=4,offset-wchar_t=0,offset-short=4,
+align-wchar_t=4,align-short=2
--- /dev/null
++++Struct wchar_t-short:
+size=8,align=4,offset-wchar_t=0,offset-short=4,
+align-wchar_t=4,align-short=2
--- /dev/null
++++Struct wchar_t-size_t:
+size=8,align=4,offset-wchar_t=0,offset-size_t=4,
+align-wchar_t=4,align-size_t=4
--- /dev/null
++++Struct wchar_t-size_t:
+size=8,align=4,offset-wchar_t=0,offset-size_t=4,
+align-wchar_t=4,align-size_t=4
--- /dev/null
++++Struct wchar_t-wchar_t:
+size=8,align=4,offset-wchar_t=0,offset-wchar_t=4,
+align-wchar_t=4,align-wchar_t=4
--- /dev/null
++++Struct wchar_t-wchar_t:
+size=8,align=4,offset-wchar_t=0,offset-wchar_t=4,
+align-wchar_t=4,align-wchar_t=4
--- /dev/null
++++Bool size:
+1
--- /dev/null
++++Char size:
+1
--- /dev/null
++++Char size:
+1
--- /dev/null
++++Double size:
+8
--- /dev/null
++++Double size:
+8
--- /dev/null
++++Float size:
+4
--- /dev/null
++++Float size:
+4
--- /dev/null
++++Int size:
+4
--- /dev/null
++++Int size:
+4
--- /dev/null
++++Long size:
+4
--- /dev/null
++++Long size:
+4
--- /dev/null
++++Long Double size:
+16
--- /dev/null
++++Long Double size:
+16
--- /dev/null
++++Long long size:
+8
--- /dev/null
++++Long long size:
+8
--- /dev/null
++++Pointer size:
+4
--- /dev/null
++++Pointer size:
+4
--- /dev/null
++++ptrdiff_t size:
+4
--- /dev/null
++++ptrdiff_t size:
+4
--- /dev/null
++++Short size:
+2
--- /dev/null
++++Short size:
+2
--- /dev/null
++++size_t size:
+4
--- /dev/null
++++size_t size:
+4
--- /dev/null
++++wchar_t size:
+4
--- /dev/null
++++wchar_t size:
+4
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct {} s0;
+static union {} u0;
+static struct {int :0;} s1;
+static union {int :0;} u1;
+static struct {char m;} s2;
+static union {char m;} u2;
+static struct {short m;} s3;
+static union {short m;} u3;
+static struct {int m;} s4;
+static union {int m;} u4;
+static struct {long m;} s5;
+static union {long m;} u5;
+static struct {long long m;} s6;
+static union {long long m;} u6;
+static struct {char * m;} s7;
+static union {char * m;} u7;
+static struct {float m;} s8;
+static union {float m;} u8;
+static struct {double m;} s9;
+static union {double m;} u9;
+static struct {long double m;} s10;
+static union {long double m;} u10;
+static struct {ptrdiff_t m;} s11;
+static union {ptrdiff_t m;} u11;
+static struct {size_t m;} s12;
+static union {size_t m;} u12;
+static struct {wchar_t m;} s13;
+static union {wchar_t m;} u13;
+static struct {struct {char m;}m;} s14;
+static union {struct {char m;}m;} u14;
+static struct {union {char m;}m;} s15;
+static union {union {char m;}m;} u15;
+static struct {struct {short m;}m;} s16;
+static union {struct {short m;}m;} u16;
+static struct {union {short m;}m;} s17;
+static union {union {short m;}m;} u17;
+static struct {struct {int m;}m;} s18;
+static union {struct {int m;}m;} u18;
+static struct {union {int m;}m;} s19;
+static union {union {int m;}m;} u19;
+static struct {struct {long m;}m;} s20;
+static union {struct {long m;}m;} u20;
+static struct {union {long m;}m;} s21;
+static union {union {long m;}m;} u21;
+static struct {struct {long long m;}m;} s22;
+static union {struct {long long m;}m;} u22;
+static struct {union {long long m;}m;} s23;
+static union {union {long long m;}m;} u23;
+static struct {struct {char * m;}m;} s24;
+static union {struct {char * m;}m;} u24;
+static struct {union {char * m;}m;} s25;
+static union {union {char * m;}m;} u25;
+static struct {struct {float m;}m;} s26;
+static union {struct {float m;}m;} u26;
+static struct {union {float m;}m;} s27;
+static union {union {float m;}m;} u27;
+static struct {struct {double m;}m;} s28;
+static union {struct {double m;}m;} u28;
+static struct {union {double m;}m;} s29;
+static union {union {double m;}m;} u29;
+static struct {struct {long double m;}m;} s30;
+static union {struct {long double m;}m;} u30;
+static struct {union {long double m;}m;} s31;
+static union {union {long double m;}m;} u31;
+static struct {struct {ptrdiff_t m;}m;} s32;
+static union {struct {ptrdiff_t m;}m;} u32;
+static struct {union {ptrdiff_t m;}m;} s33;
+static union {union {ptrdiff_t m;}m;} u33;
+static struct {struct {size_t m;}m;} s34;
+static union {struct {size_t m;}m;} u34;
+static struct {union {size_t m;}m;} s35;
+static union {union {size_t m;}m;} u35;
+static struct {struct {wchar_t m;}m;} s36;
+static union {struct {wchar_t m;}m;} u36;
+static struct {union {wchar_t m;}m;} s37;
+static union {union {wchar_t m;}m;} u37;
+static struct {struct {}m;} s38;
+static union {struct {}m;} u38;
+static struct {union {}m;} s39;
+static union {union {}m;} u39;
+static struct {struct {int :0;}m;} s40;
+static union {struct {int :0;}m;} u40;
+static struct {union {int :0;}m;} s41;
+static union {union {int :0;}m;} u41;
+static struct {char m [0];} s42;
+static union {char m [0];} u42;
+static struct {short m [0];} s43;
+static union {short m [0];} u43;
+static struct {int m [0];} s44;
+static union {int m [0];} u44;
+static struct {long m [0];} s45;
+static union {long m [0];} u45;
+static struct {long long m [0];} s46;
+static union {long long m [0];} u46;
+static struct {char * m [0];} s47;
+static union {char * m [0];} u47;
+static struct {float m [0];} s48;
+static union {float m [0];} u48;
+static struct {double m [0];} s49;
+static union {double m [0];} u49;
+static struct {long double m [0];} s50;
+static union {long double m [0];} u50;
+static struct {ptrdiff_t m [0];} s51;
+static union {ptrdiff_t m [0];} u51;
+static struct {size_t m [0];} s52;
+static union {size_t m [0];} u52;
+static struct {wchar_t m [0];} s53;
+static union {wchar_t m [0];} u53;
+int main (void) {
+ int min_size = 0;
+ int min_align = 0;
+ printf ("+++Minimal struct size/alignment:\n");
+ if (min_size > sizeof (s0))
+ min_size = sizeof (s0);
+ if (min_align > __alignof__ (s0))
+ min_align = __alignof__ (s0);
+ if (min_size > sizeof (u0))
+ min_size = sizeof (u0);
+ if (min_align > __alignof__ (u0))
+ min_align = __alignof__ (u0);
+ if (min_size > sizeof (s1))
+ min_size = sizeof (s1);
+ if (min_align > __alignof__ (s1))
+ min_align = __alignof__ (s1);
+ if (min_size > sizeof (u1))
+ min_size = sizeof (u1);
+ if (min_align > __alignof__ (u1))
+ min_align = __alignof__ (u1);
+ if (min_size > sizeof (s2))
+ min_size = sizeof (s2);
+ if (min_align > __alignof__ (s2))
+ min_align = __alignof__ (s2);
+ if (min_size > sizeof (u2))
+ min_size = sizeof (u2);
+ if (min_align > __alignof__ (u2))
+ min_align = __alignof__ (u2);
+ if (min_size > sizeof (s3))
+ min_size = sizeof (s3);
+ if (min_align > __alignof__ (s3))
+ min_align = __alignof__ (s3);
+ if (min_size > sizeof (u3))
+ min_size = sizeof (u3);
+ if (min_align > __alignof__ (u3))
+ min_align = __alignof__ (u3);
+ if (min_size > sizeof (s4))
+ min_size = sizeof (s4);
+ if (min_align > __alignof__ (s4))
+ min_align = __alignof__ (s4);
+ if (min_size > sizeof (u4))
+ min_size = sizeof (u4);
+ if (min_align > __alignof__ (u4))
+ min_align = __alignof__ (u4);
+ if (min_size > sizeof (s5))
+ min_size = sizeof (s5);
+ if (min_align > __alignof__ (s5))
+ min_align = __alignof__ (s5);
+ if (min_size > sizeof (u5))
+ min_size = sizeof (u5);
+ if (min_align > __alignof__ (u5))
+ min_align = __alignof__ (u5);
+ if (min_size > sizeof (s6))
+ min_size = sizeof (s6);
+ if (min_align > __alignof__ (s6))
+ min_align = __alignof__ (s6);
+ if (min_size > sizeof (u6))
+ min_size = sizeof (u6);
+ if (min_align > __alignof__ (u6))
+ min_align = __alignof__ (u6);
+ if (min_size > sizeof (s7))
+ min_size = sizeof (s7);
+ if (min_align > __alignof__ (s7))
+ min_align = __alignof__ (s7);
+ if (min_size > sizeof (u7))
+ min_size = sizeof (u7);
+ if (min_align > __alignof__ (u7))
+ min_align = __alignof__ (u7);
+ if (min_size > sizeof (s8))
+ min_size = sizeof (s8);
+ if (min_align > __alignof__ (s8))
+ min_align = __alignof__ (s8);
+ if (min_size > sizeof (u8))
+ min_size = sizeof (u8);
+ if (min_align > __alignof__ (u8))
+ min_align = __alignof__ (u8);
+ if (min_size > sizeof (s9))
+ min_size = sizeof (s9);
+ if (min_align > __alignof__ (s9))
+ min_align = __alignof__ (s9);
+ if (min_size > sizeof (u9))
+ min_size = sizeof (u9);
+ if (min_align > __alignof__ (u9))
+ min_align = __alignof__ (u9);
+ if (min_size > sizeof (s10))
+ min_size = sizeof (s10);
+ if (min_align > __alignof__ (s10))
+ min_align = __alignof__ (s10);
+ if (min_size > sizeof (u10))
+ min_size = sizeof (u10);
+ if (min_align > __alignof__ (u10))
+ min_align = __alignof__ (u10);
+ if (min_size > sizeof (s11))
+ min_size = sizeof (s11);
+ if (min_align > __alignof__ (s11))
+ min_align = __alignof__ (s11);
+ if (min_size > sizeof (u11))
+ min_size = sizeof (u11);
+ if (min_align > __alignof__ (u11))
+ min_align = __alignof__ (u11);
+ if (min_size > sizeof (s12))
+ min_size = sizeof (s12);
+ if (min_align > __alignof__ (s12))
+ min_align = __alignof__ (s12);
+ if (min_size > sizeof (u12))
+ min_size = sizeof (u12);
+ if (min_align > __alignof__ (u12))
+ min_align = __alignof__ (u12);
+ if (min_size > sizeof (s13))
+ min_size = sizeof (s13);
+ if (min_align > __alignof__ (s13))
+ min_align = __alignof__ (s13);
+ if (min_size > sizeof (u13))
+ min_size = sizeof (u13);
+ if (min_align > __alignof__ (u13))
+ min_align = __alignof__ (u13);
+ if (min_size > sizeof (s14))
+ min_size = sizeof (s14);
+ if (min_align > __alignof__ (s14))
+ min_align = __alignof__ (s14);
+ if (min_size > sizeof (u14))
+ min_size = sizeof (u14);
+ if (min_align > __alignof__ (u14))
+ min_align = __alignof__ (u14);
+ if (min_size > sizeof (s15))
+ min_size = sizeof (s15);
+ if (min_align > __alignof__ (s15))
+ min_align = __alignof__ (s15);
+ if (min_size > sizeof (u15))
+ min_size = sizeof (u15);
+ if (min_align > __alignof__ (u15))
+ min_align = __alignof__ (u15);
+ if (min_size > sizeof (s16))
+ min_size = sizeof (s16);
+ if (min_align > __alignof__ (s16))
+ min_align = __alignof__ (s16);
+ if (min_size > sizeof (u16))
+ min_size = sizeof (u16);
+ if (min_align > __alignof__ (u16))
+ min_align = __alignof__ (u16);
+ if (min_size > sizeof (s17))
+ min_size = sizeof (s17);
+ if (min_align > __alignof__ (s17))
+ min_align = __alignof__ (s17);
+ if (min_size > sizeof (u17))
+ min_size = sizeof (u17);
+ if (min_align > __alignof__ (u17))
+ min_align = __alignof__ (u17);
+ if (min_size > sizeof (s18))
+ min_size = sizeof (s18);
+ if (min_align > __alignof__ (s18))
+ min_align = __alignof__ (s18);
+ if (min_size > sizeof (u18))
+ min_size = sizeof (u18);
+ if (min_align > __alignof__ (u18))
+ min_align = __alignof__ (u18);
+ if (min_size > sizeof (s19))
+ min_size = sizeof (s19);
+ if (min_align > __alignof__ (s19))
+ min_align = __alignof__ (s19);
+ if (min_size > sizeof (u19))
+ min_size = sizeof (u19);
+ if (min_align > __alignof__ (u19))
+ min_align = __alignof__ (u19);
+ if (min_size > sizeof (s20))
+ min_size = sizeof (s20);
+ if (min_align > __alignof__ (s20))
+ min_align = __alignof__ (s20);
+ if (min_size > sizeof (u20))
+ min_size = sizeof (u20);
+ if (min_align > __alignof__ (u20))
+ min_align = __alignof__ (u20);
+ if (min_size > sizeof (s21))
+ min_size = sizeof (s21);
+ if (min_align > __alignof__ (s21))
+ min_align = __alignof__ (s21);
+ if (min_size > sizeof (u21))
+ min_size = sizeof (u21);
+ if (min_align > __alignof__ (u21))
+ min_align = __alignof__ (u21);
+ if (min_size > sizeof (s22))
+ min_size = sizeof (s22);
+ if (min_align > __alignof__ (s22))
+ min_align = __alignof__ (s22);
+ if (min_size > sizeof (u22))
+ min_size = sizeof (u22);
+ if (min_align > __alignof__ (u22))
+ min_align = __alignof__ (u22);
+ if (min_size > sizeof (s23))
+ min_size = sizeof (s23);
+ if (min_align > __alignof__ (s23))
+ min_align = __alignof__ (s23);
+ if (min_size > sizeof (u23))
+ min_size = sizeof (u23);
+ if (min_align > __alignof__ (u23))
+ min_align = __alignof__ (u23);
+ if (min_size > sizeof (s24))
+ min_size = sizeof (s24);
+ if (min_align > __alignof__ (s24))
+ min_align = __alignof__ (s24);
+ if (min_size > sizeof (u24))
+ min_size = sizeof (u24);
+ if (min_align > __alignof__ (u24))
+ min_align = __alignof__ (u24);
+ if (min_size > sizeof (s25))
+ min_size = sizeof (s25);
+ if (min_align > __alignof__ (s25))
+ min_align = __alignof__ (s25);
+ if (min_size > sizeof (u25))
+ min_size = sizeof (u25);
+ if (min_align > __alignof__ (u25))
+ min_align = __alignof__ (u25);
+ if (min_size > sizeof (s26))
+ min_size = sizeof (s26);
+ if (min_align > __alignof__ (s26))
+ min_align = __alignof__ (s26);
+ if (min_size > sizeof (u26))
+ min_size = sizeof (u26);
+ if (min_align > __alignof__ (u26))
+ min_align = __alignof__ (u26);
+ if (min_size > sizeof (s27))
+ min_size = sizeof (s27);
+ if (min_align > __alignof__ (s27))
+ min_align = __alignof__ (s27);
+ if (min_size > sizeof (u27))
+ min_size = sizeof (u27);
+ if (min_align > __alignof__ (u27))
+ min_align = __alignof__ (u27);
+ if (min_size > sizeof (s28))
+ min_size = sizeof (s28);
+ if (min_align > __alignof__ (s28))
+ min_align = __alignof__ (s28);
+ if (min_size > sizeof (u28))
+ min_size = sizeof (u28);
+ if (min_align > __alignof__ (u28))
+ min_align = __alignof__ (u28);
+ if (min_size > sizeof (s29))
+ min_size = sizeof (s29);
+ if (min_align > __alignof__ (s29))
+ min_align = __alignof__ (s29);
+ if (min_size > sizeof (u29))
+ min_size = sizeof (u29);
+ if (min_align > __alignof__ (u29))
+ min_align = __alignof__ (u29);
+ if (min_size > sizeof (s30))
+ min_size = sizeof (s30);
+ if (min_align > __alignof__ (s30))
+ min_align = __alignof__ (s30);
+ if (min_size > sizeof (u30))
+ min_size = sizeof (u30);
+ if (min_align > __alignof__ (u30))
+ min_align = __alignof__ (u30);
+ if (min_size > sizeof (s31))
+ min_size = sizeof (s31);
+ if (min_align > __alignof__ (s31))
+ min_align = __alignof__ (s31);
+ if (min_size > sizeof (u31))
+ min_size = sizeof (u31);
+ if (min_align > __alignof__ (u31))
+ min_align = __alignof__ (u31);
+ if (min_size > sizeof (s32))
+ min_size = sizeof (s32);
+ if (min_align > __alignof__ (s32))
+ min_align = __alignof__ (s32);
+ if (min_size > sizeof (u32))
+ min_size = sizeof (u32);
+ if (min_align > __alignof__ (u32))
+ min_align = __alignof__ (u32);
+ if (min_size > sizeof (s33))
+ min_size = sizeof (s33);
+ if (min_align > __alignof__ (s33))
+ min_align = __alignof__ (s33);
+ if (min_size > sizeof (u33))
+ min_size = sizeof (u33);
+ if (min_align > __alignof__ (u33))
+ min_align = __alignof__ (u33);
+ if (min_size > sizeof (s34))
+ min_size = sizeof (s34);
+ if (min_align > __alignof__ (s34))
+ min_align = __alignof__ (s34);
+ if (min_size > sizeof (u34))
+ min_size = sizeof (u34);
+ if (min_align > __alignof__ (u34))
+ min_align = __alignof__ (u34);
+ if (min_size > sizeof (s35))
+ min_size = sizeof (s35);
+ if (min_align > __alignof__ (s35))
+ min_align = __alignof__ (s35);
+ if (min_size > sizeof (u35))
+ min_size = sizeof (u35);
+ if (min_align > __alignof__ (u35))
+ min_align = __alignof__ (u35);
+ if (min_size > sizeof (s36))
+ min_size = sizeof (s36);
+ if (min_align > __alignof__ (s36))
+ min_align = __alignof__ (s36);
+ if (min_size > sizeof (u36))
+ min_size = sizeof (u36);
+ if (min_align > __alignof__ (u36))
+ min_align = __alignof__ (u36);
+ if (min_size > sizeof (s37))
+ min_size = sizeof (s37);
+ if (min_align > __alignof__ (s37))
+ min_align = __alignof__ (s37);
+ if (min_size > sizeof (u37))
+ min_size = sizeof (u37);
+ if (min_align > __alignof__ (u37))
+ min_align = __alignof__ (u37);
+ if (min_size > sizeof (s38))
+ min_size = sizeof (s38);
+ if (min_align > __alignof__ (s38))
+ min_align = __alignof__ (s38);
+ if (min_size > sizeof (u38))
+ min_size = sizeof (u38);
+ if (min_align > __alignof__ (u38))
+ min_align = __alignof__ (u38);
+ if (min_size > sizeof (s39))
+ min_size = sizeof (s39);
+ if (min_align > __alignof__ (s39))
+ min_align = __alignof__ (s39);
+ if (min_size > sizeof (u39))
+ min_size = sizeof (u39);
+ if (min_align > __alignof__ (u39))
+ min_align = __alignof__ (u39);
+ if (min_size > sizeof (s40))
+ min_size = sizeof (s40);
+ if (min_align > __alignof__ (s40))
+ min_align = __alignof__ (s40);
+ if (min_size > sizeof (u40))
+ min_size = sizeof (u40);
+ if (min_align > __alignof__ (u40))
+ min_align = __alignof__ (u40);
+ if (min_size > sizeof (s41))
+ min_size = sizeof (s41);
+ if (min_align > __alignof__ (s41))
+ min_align = __alignof__ (s41);
+ if (min_size > sizeof (u41))
+ min_size = sizeof (u41);
+ if (min_align > __alignof__ (u41))
+ min_align = __alignof__ (u41);
+ if (min_size > sizeof (s42))
+ min_size = sizeof (s42);
+ if (min_align > __alignof__ (s42))
+ min_align = __alignof__ (s42);
+ if (min_size > sizeof (u42))
+ min_size = sizeof (u42);
+ if (min_align > __alignof__ (u42))
+ min_align = __alignof__ (u42);
+ if (min_size > sizeof (s43))
+ min_size = sizeof (s43);
+ if (min_align > __alignof__ (s43))
+ min_align = __alignof__ (s43);
+ if (min_size > sizeof (u43))
+ min_size = sizeof (u43);
+ if (min_align > __alignof__ (u43))
+ min_align = __alignof__ (u43);
+ if (min_size > sizeof (s44))
+ min_size = sizeof (s44);
+ if (min_align > __alignof__ (s44))
+ min_align = __alignof__ (s44);
+ if (min_size > sizeof (u44))
+ min_size = sizeof (u44);
+ if (min_align > __alignof__ (u44))
+ min_align = __alignof__ (u44);
+ if (min_size > sizeof (s45))
+ min_size = sizeof (s45);
+ if (min_align > __alignof__ (s45))
+ min_align = __alignof__ (s45);
+ if (min_size > sizeof (u45))
+ min_size = sizeof (u45);
+ if (min_align > __alignof__ (u45))
+ min_align = __alignof__ (u45);
+ if (min_size > sizeof (s46))
+ min_size = sizeof (s46);
+ if (min_align > __alignof__ (s46))
+ min_align = __alignof__ (s46);
+ if (min_size > sizeof (u46))
+ min_size = sizeof (u46);
+ if (min_align > __alignof__ (u46))
+ min_align = __alignof__ (u46);
+ if (min_size > sizeof (s47))
+ min_size = sizeof (s47);
+ if (min_align > __alignof__ (s47))
+ min_align = __alignof__ (s47);
+ if (min_size > sizeof (u47))
+ min_size = sizeof (u47);
+ if (min_align > __alignof__ (u47))
+ min_align = __alignof__ (u47);
+ if (min_size > sizeof (s48))
+ min_size = sizeof (s48);
+ if (min_align > __alignof__ (s48))
+ min_align = __alignof__ (s48);
+ if (min_size > sizeof (u48))
+ min_size = sizeof (u48);
+ if (min_align > __alignof__ (u48))
+ min_align = __alignof__ (u48);
+ if (min_size > sizeof (s49))
+ min_size = sizeof (s49);
+ if (min_align > __alignof__ (s49))
+ min_align = __alignof__ (s49);
+ if (min_size > sizeof (u49))
+ min_size = sizeof (u49);
+ if (min_align > __alignof__ (u49))
+ min_align = __alignof__ (u49);
+ if (min_size > sizeof (s50))
+ min_size = sizeof (s50);
+ if (min_align > __alignof__ (s50))
+ min_align = __alignof__ (s50);
+ if (min_size > sizeof (u50))
+ min_size = sizeof (u50);
+ if (min_align > __alignof__ (u50))
+ min_align = __alignof__ (u50);
+ if (min_size > sizeof (s51))
+ min_size = sizeof (s51);
+ if (min_align > __alignof__ (s51))
+ min_align = __alignof__ (s51);
+ if (min_size > sizeof (u51))
+ min_size = sizeof (u51);
+ if (min_align > __alignof__ (u51))
+ min_align = __alignof__ (u51);
+ if (min_size > sizeof (s52))
+ min_size = sizeof (s52);
+ if (min_align > __alignof__ (s52))
+ min_align = __alignof__ (s52);
+ if (min_size > sizeof (u52))
+ min_size = sizeof (u52);
+ if (min_align > __alignof__ (u52))
+ min_align = __alignof__ (u52);
+ if (min_size > sizeof (s53))
+ min_size = sizeof (s53);
+ if (min_align > __alignof__ (s53))
+ min_align = __alignof__ (s53);
+ if (min_size > sizeof (u53))
+ min_size = sizeof (u53);
+ if (min_align > __alignof__ (u53))
+ min_align = __alignof__ (u53);
+ printf ("min struct/union size =%d\n", min_size);
+ printf ("min struct/union align=%d\n", min_align);
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-char=%d,\nalign-char=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-double=%d,\nalign-char=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-float=%d,\nalign-char=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-int=%d,\nalign-char=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-long=%d,\nalign-char=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-longdouble=%d,\nalign-char=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-longlong=%d,\nalign-char=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-pointer=%d,\nalign-char=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with char:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-arrayof-short=%d,\nalign-char=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-char:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-char=%d,\nalign-char=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-double:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-double=%d,\nalign-char=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-float:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-float=%d,\nalign-char=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-int:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-int=%d,\nalign-char=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-long:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-long=%d,\nalign-char=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-longdouble:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-longdouble=%d,\nalign-char=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-longlong:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-longlong=%d,\nalign-char=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-pointer:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-pointer=%d,\nalign-char=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ char f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-ptrdiff_t=%d,\nalign-char=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-char=%d,\nalign-char=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-double=%d,\nalign-char=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-float=%d,\nalign-char=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-int=%d,\nalign-char=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-long=%d,\nalign-char=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-longdouble=%d,\nalign-char=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-longlong=%d,\nalign-char=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-pointer=%d,\nalign-char=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-sss-short=%d,\nalign-char=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-short:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-short=%d,\nalign-char=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ char f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-size_t:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-size_t=%d,\nalign-char=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ char f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-char=%d,offset-wchar_t=%d,\nalign-char=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with char:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-char=%d,\nalign-double=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-double=%d,\nalign-double=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-float=%d,\nalign-double=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-int=%d,\nalign-double=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-long=%d,\nalign-double=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-longdouble=%d,\nalign-double=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-longlong=%d,\nalign-double=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-pointer=%d,\nalign-double=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with double:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-arrayof-short=%d,\nalign-double=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-char:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-char=%d,\nalign-double=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-double:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-double=%d,\nalign-double=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-float:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-float=%d,\nalign-double=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-int:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-int=%d,\nalign-double=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-long:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-long=%d,\nalign-double=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-longdouble:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-longdouble=%d,\nalign-double=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-longlong:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-longlong=%d,\nalign-double=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-pointer:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-pointer=%d,\nalign-double=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ double f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-ptrdiff_t=%d,\nalign-double=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-char=%d,\nalign-double=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-double=%d,\nalign-double=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-float=%d,\nalign-double=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-int=%d,\nalign-double=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-long=%d,\nalign-double=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-longdouble=%d,\nalign-double=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-longlong=%d,\nalign-double=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-pointer=%d,\nalign-double=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-sss-short=%d,\nalign-double=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-short:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-short=%d,\nalign-double=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ double f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-size_t:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-size_t=%d,\nalign-double=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ double f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-double=%d,offset-wchar_t=%d,\nalign-double=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ double f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with double:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-char=%d,\nalign-float=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-double=%d,\nalign-float=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-float=%d,\nalign-float=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-int=%d,\nalign-float=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-long=%d,\nalign-float=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-longdouble=%d,\nalign-float=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-longlong=%d,\nalign-float=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-pointer=%d,\nalign-float=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with float:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-arrayof-short=%d,\nalign-float=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-char:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-char=%d,\nalign-float=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-double:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-double=%d,\nalign-float=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-float:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-float=%d,\nalign-float=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-int:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-int=%d,\nalign-float=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-long:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-long=%d,\nalign-float=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-longdouble:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-longdouble=%d,\nalign-float=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-longlong:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-longlong=%d,\nalign-float=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-pointer:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-pointer=%d,\nalign-float=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ float f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-ptrdiff_t=%d,\nalign-float=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-char=%d,\nalign-float=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-double=%d,\nalign-float=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-float=%d,\nalign-float=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-int=%d,\nalign-float=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-long=%d,\nalign-float=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-longdouble=%d,\nalign-float=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-longlong=%d,\nalign-float=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-pointer=%d,\nalign-float=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-sss-short=%d,\nalign-float=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-short:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-short=%d,\nalign-float=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ float f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-size_t:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-size_t=%d,\nalign-float=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ float f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-float=%d,offset-wchar_t=%d,\nalign-float=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ float f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with float:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-char=%d,\nalign-int=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-double=%d,\nalign-int=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-float=%d,\nalign-int=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-int=%d,\nalign-int=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-long=%d,\nalign-int=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-longdouble=%d,\nalign-int=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-longlong=%d,\nalign-int=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-pointer=%d,\nalign-int=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with int:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-arrayof-short=%d,\nalign-int=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-char:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-char=%d,\nalign-int=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-double:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-double=%d,\nalign-int=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-float:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-float=%d,\nalign-int=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-int:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-int=%d,\nalign-int=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-long:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-long=%d,\nalign-int=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-longdouble:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-longdouble=%d,\nalign-int=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-longlong:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-longlong=%d,\nalign-int=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-pointer:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-pointer=%d,\nalign-int=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ int f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-ptrdiff_t=%d,\nalign-int=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-char=%d,\nalign-int=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-double=%d,\nalign-int=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-float=%d,\nalign-int=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-int=%d,\nalign-int=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-long=%d,\nalign-int=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-longdouble=%d,\nalign-int=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-longlong=%d,\nalign-int=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-pointer=%d,\nalign-int=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-sss-short=%d,\nalign-int=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-short:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-short=%d,\nalign-int=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ int f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-size_t:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-size_t=%d,\nalign-int=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ int f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-int=%d,offset-wchar_t=%d,\nalign-int=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ int f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with int:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-char=%d,\nalign-long=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-double=%d,\nalign-long=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-float=%d,\nalign-long=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-int=%d,\nalign-long=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-long=%d,\nalign-long=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-longdouble=%d,\nalign-long=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-longlong=%d,\nalign-long=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-pointer=%d,\nalign-long=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with long:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-arrayof-short=%d,\nalign-long=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-char:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-char=%d,\nalign-long=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-double:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-double=%d,\nalign-long=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-float:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-float=%d,\nalign-long=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-int:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-int=%d,\nalign-long=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-long:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-long=%d,\nalign-long=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-longdouble:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-longdouble=%d,\nalign-long=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-longlong:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-longlong=%d,\nalign-long=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-pointer:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-pointer=%d,\nalign-long=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-ptrdiff_t=%d,\nalign-long=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-char=%d,\nalign-long=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-double=%d,\nalign-long=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-float=%d,\nalign-long=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-int=%d,\nalign-long=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-long=%d,\nalign-long=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-longdouble=%d,\nalign-long=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-longlong=%d,\nalign-long=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-pointer=%d,\nalign-long=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-sss-short=%d,\nalign-long=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-short:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-short=%d,\nalign-long=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-size_t:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-size_t=%d,\nalign-long=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-long=%d,offset-wchar_t=%d,\nalign-long=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with long:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-char=%d,\nalign-longdouble=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-double=%d,\nalign-longdouble=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-float=%d,\nalign-longdouble=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-int=%d,\nalign-longdouble=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-long=%d,\nalign-longdouble=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-longdouble=%d,\nalign-longdouble=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-longlong=%d,\nalign-longdouble=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-pointer=%d,\nalign-longdouble=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-arrayof-short=%d,\nalign-longdouble=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-char:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-char=%d,\nalign-longdouble=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-double:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-double=%d,\nalign-longdouble=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-float:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-float=%d,\nalign-longdouble=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-int:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-int=%d,\nalign-longdouble=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-long:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-long=%d,\nalign-longdouble=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-longdouble:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-longdouble=%d,\nalign-longdouble=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-longlong:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-longlong=%d,\nalign-longdouble=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-pointer:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-pointer=%d,\nalign-longdouble=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long double f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-ptrdiff_t=%d,\nalign-longdouble=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-char=%d,\nalign-longdouble=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-double=%d,\nalign-longdouble=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-float=%d,\nalign-longdouble=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-int=%d,\nalign-longdouble=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-long=%d,\nalign-longdouble=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-longdouble=%d,\nalign-longdouble=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-longlong=%d,\nalign-longdouble=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-pointer=%d,\nalign-longdouble=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-sss-short=%d,\nalign-longdouble=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-short:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-short=%d,\nalign-longdouble=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long double f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-size_t:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-size_t=%d,\nalign-longdouble=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long double f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-longdouble=%d,offset-wchar_t=%d,\nalign-longdouble=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long double f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with longdouble:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-char=%d,\nalign-longlong=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-double=%d,\nalign-longlong=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-float=%d,\nalign-longlong=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-int=%d,\nalign-longlong=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-long=%d,\nalign-longlong=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-longdouble=%d,\nalign-longlong=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-longlong=%d,\nalign-longlong=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-pointer=%d,\nalign-longlong=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-arrayof-short=%d,\nalign-longlong=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-char:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-char=%d,\nalign-longlong=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-double:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-double=%d,\nalign-longlong=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-float:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-float=%d,\nalign-longlong=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-int:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-int=%d,\nalign-longlong=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-long:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-long=%d,\nalign-longlong=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-longdouble:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-longdouble=%d,\nalign-longlong=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-longlong:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-longlong=%d,\nalign-longlong=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-pointer:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-pointer=%d,\nalign-longlong=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long long f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-ptrdiff_t=%d,\nalign-longlong=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-char=%d,\nalign-longlong=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-double=%d,\nalign-longlong=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-float=%d,\nalign-longlong=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-int=%d,\nalign-longlong=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-long=%d,\nalign-longlong=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-longdouble=%d,\nalign-longlong=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-longlong=%d,\nalign-longlong=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-pointer=%d,\nalign-longlong=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-sss-short=%d,\nalign-longlong=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-short:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-short=%d,\nalign-longlong=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long long f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-size_t:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-size_t=%d,\nalign-longlong=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ long long f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-longlong=%d,offset-wchar_t=%d,\nalign-longlong=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ long long f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with longlong:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-char=%d,\nalign-pointer=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-double=%d,\nalign-pointer=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-float=%d,\nalign-pointer=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-int=%d,\nalign-pointer=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-long=%d,\nalign-pointer=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-longdouble=%d,\nalign-pointer=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-longlong=%d,\nalign-pointer=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-pointer=%d,\nalign-pointer=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-arrayof-short=%d,\nalign-pointer=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-char:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-char=%d,\nalign-pointer=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-double:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-double=%d,\nalign-pointer=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-float:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-float=%d,\nalign-pointer=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-int:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-int=%d,\nalign-pointer=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-long:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-long=%d,\nalign-pointer=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-longdouble:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-longdouble=%d,\nalign-pointer=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-longlong:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-longlong=%d,\nalign-pointer=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-pointer:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-pointer=%d,\nalign-pointer=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ char * f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-ptrdiff_t=%d,\nalign-pointer=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-char=%d,\nalign-pointer=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-double=%d,\nalign-pointer=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-float=%d,\nalign-pointer=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-int=%d,\nalign-pointer=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-long=%d,\nalign-pointer=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-longdouble=%d,\nalign-pointer=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-longlong=%d,\nalign-pointer=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-pointer=%d,\nalign-pointer=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-sss-short=%d,\nalign-pointer=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-short:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-short=%d,\nalign-pointer=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ char * f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-size_t:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-size_t=%d,\nalign-pointer=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ char * f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-pointer=%d,offset-wchar_t=%d,\nalign-pointer=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ char * f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with pointer:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-char:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-char=%d,\nalign-ptrdiff_t=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-double:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-double=%d,\nalign-ptrdiff_t=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-float:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-float=%d,\nalign-ptrdiff_t=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-int:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-int=%d,\nalign-ptrdiff_t=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-long:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-long=%d,\nalign-ptrdiff_t=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-longdouble:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-longdouble=%d,\nalign-ptrdiff_t=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-longlong:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-longlong=%d,\nalign-ptrdiff_t=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-pointer:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-pointer=%d,\nalign-ptrdiff_t=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-ptrdiff_t=%d,\nalign-ptrdiff_t=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-short:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-short=%d,\nalign-ptrdiff_t=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-size_t:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-size_t=%d,\nalign-ptrdiff_t=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ ptrdiff_t f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct ptrdiff_t-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-wchar_t=%d,\nalign-ptrdiff_t=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ char a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of char in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-char=%d,\nalign-short=%d,align-arrayof-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of double in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-double=%d,\nalign-short=%d,align-arrayof-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ float a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of float in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-float=%d,\nalign-short=%d,align-arrayof-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ int a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of int in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-int=%d,\nalign-short=%d,align-arrayof-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of long in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-long=%d,\nalign-short=%d,align-arrayof-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long double a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longdouble in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-longdouble=%d,\nalign-short=%d,align-arrayof-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long long a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of longlong in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-longlong=%d,\nalign-short=%d,align-arrayof-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ char * a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of pointer in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-pointer=%d,\nalign-short=%d,align-arrayof-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ short a[10];
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("++++Array of short in struct starting with short:\n");
+ printf ("size=%d,align=%d\n",
+ sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-arrayof-short=%d,\nalign-short=%d,align-arrayof-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, a),
+ __alignof__ (sss.f), __alignof__ (sss.a));
+ printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
+ _offsetof (struct sss, a[5]),
+ __alignof__ (sss.a[5]));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-char:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-char=%d,\nalign-short=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-double:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-double=%d,\nalign-short=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-float:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-float=%d,\nalign-short=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-int:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-int=%d,\nalign-short=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-long:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-long=%d,\nalign-short=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-longdouble:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-longdouble=%d,\nalign-short=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-longlong:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-longlong=%d,\nalign-short=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-pointer:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-pointer=%d,\nalign-short=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ short f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-ptrdiff_t=%d,\nalign-short=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {char m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct char inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-char=%d,\nalign-short=%d,align-sss-char=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct double inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-double=%d,\nalign-short=%d,align-sss-double=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {float m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct float inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-float=%d,\nalign-short=%d,align-sss-float=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {int m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct int inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-int=%d,\nalign-short=%d,align-sss-int=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct long inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-long=%d,\nalign-short=%d,align-sss-long=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {long double m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longdouble inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-longdouble=%d,\nalign-short=%d,align-sss-longdouble=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {long long m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct longlong inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-longlong=%d,\nalign-short=%d,align-sss-longlong=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {char * m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct pointer inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-pointer=%d,\nalign-short=%d,align-sss-pointer=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ struct {short m;} snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-sss-short=%d,\nalign-short=%d,align-sss-short=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-short:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-short=%d,\nalign-short=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ short f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-size_t:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-size_t=%d,\nalign-short=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ short f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct short-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-short=%d,offset-wchar_t=%d,\nalign-short=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ char :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++char zerofield inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ int :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++int zerofield inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++long zerofield inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ long long :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++longlong zerofield inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static struct sss{
+ short f;
+ short :0;
+ int i;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++short zerofield inside struct starting with short:\n");
+ printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
+ printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
+ _offsetof (struct sss, f), _offsetof (struct sss, i),
+ __alignof__ (sss.f), __alignof__ (sss.i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-char:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-char=%d,\nalign-size_t=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-double:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-double=%d,\nalign-size_t=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-float:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-float=%d,\nalign-size_t=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-int:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-int=%d,\nalign-size_t=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-long:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-long=%d,\nalign-size_t=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-longdouble:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-longdouble=%d,\nalign-size_t=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-longlong:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-longlong=%d,\nalign-size_t=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-pointer:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-pointer=%d,\nalign-size_t=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-ptrdiff_t=%d,\nalign-size_t=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-short:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-short=%d,\nalign-size_t=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-size_t:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-size_t=%d,\nalign-size_t=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ size_t f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct size_t-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-size_t=%d,offset-wchar_t=%d,\nalign-size_t=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ char snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-char:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-char=%d,\nalign-wchar_t=%d,align-char=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-double:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-double=%d,\nalign-wchar_t=%d,align-double=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ float snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-float:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-float=%d,\nalign-wchar_t=%d,align-float=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ int snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-int:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-int=%d,\nalign-wchar_t=%d,align-int=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-long:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-long=%d,\nalign-wchar_t=%d,align-long=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ long double snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-longdouble:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-longdouble=%d,\nalign-wchar_t=%d,align-longdouble=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ long long snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-longlong:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-longlong=%d,\nalign-wchar_t=%d,align-longlong=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ char * snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-pointer:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-pointer=%d,\nalign-wchar_t=%d,align-pointer=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ ptrdiff_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-ptrdiff_t:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-ptrdiff_t=%d,\nalign-wchar_t=%d,align-ptrdiff_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ short snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-short:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-short=%d,\nalign-wchar_t=%d,align-short=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ size_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-size_t:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-size_t=%d,\nalign-wchar_t=%d,align-size_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static struct sss{
+ wchar_t f;
+ wchar_t snd;
+} sss;
+
+#define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
+
+int main (void) {
+ printf ("+++Struct wchar_t-wchar_t:\n");
+ printf ("size=%d,align=%d,offset-wchar_t=%d,offset-wchar_t=%d,\nalign-wchar_t=%d,align-wchar_t=%d\n",
+ sizeof (sss), __alignof__ (sss),
+ _offsetof (struct sss, f), _offsetof (struct sss, snd),
+ __alignof__ (sss.f), __alignof__ (sss.snd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static bool bbb;
+
+int main(void)
+{
+ printf ("+++Bool size:\n");
+ printf ("%d\n", sizeof (bbb));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static char ccc;
+
+int main(void)
+{
+ printf ("+++Char size:\n");
+ printf ("%d\n", sizeof (ccc));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static double d;
+
+int main(void)
+{
+ printf ("+++Double size:\n");
+ printf ("%d\n", sizeof (d));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static float f;
+
+int main(void)
+{
+ printf ("+++Float size:\n");
+ printf ("%d\n", sizeof (f));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static int i;
+
+int main(void)
+{
+ printf ("+++Int size:\n");
+ printf ("%d\n", sizeof (i));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long lll;
+
+int main(void)
+{
+ printf ("+++Long size:\n");
+ printf ("%d\n", sizeof (lll));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long double ld;
+
+int main(void)
+{
+ printf ("+++Long Double size:\n");
+ printf ("%d\n", sizeof (ld));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static long long ll;
+
+int main(void)
+{
+ printf ("+++Long long size:\n");
+ printf ("%d\n", sizeof (ll));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static char *p;
+
+int main(void)
+{
+ printf ("+++Pointer size:\n");
+ printf ("%d\n", sizeof (p));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static ptrdiff_t pd;
+
+int main(void)
+{
+ printf ("+++ptrdiff_t size:\n");
+ printf ("%d\n", sizeof (pd));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+static short sss;
+
+int main(void)
+{
+ printf ("+++Short size:\n");
+ printf ("%d\n", sizeof (sss));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static size_t sss;
+
+int main(void)
+{
+ printf ("+++size_t size:\n");
+ printf ("%d\n", sizeof (sss));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stddef.h>
+
+static wchar_t w;
+
+int main(void)
+{
+ printf ("+++wchar_t size:\n");
+ printf ("%d\n", sizeof (w));
+ return 0;
+}
--- /dev/null
+# Copyright (C) 1998,1999 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gcc@prep.ai.mit.edu
+
+# This file was created for by Vladimir Makarov (vmakarov@cygnus.com)
+# on the base c-torture.exp.
+
+# The script requires setting up BASE_COMPILER (e.g. in RUNTESTFLAGS).
+# The default options can be overridden by
+# CONSISTENCY_OPTIONS="option ... " (e.g. in RUNTESTFLAGS).
+
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![info exists BASE_COMPILER] {
+ fail "BASE_COMPILER is not set"
+ return
+}
+
+if ![info exists CONSISTENCY_OPTIONS] {
+ set CONSISTENCY_OPTIONS "-O2"
+}
+
+if ![info exists NO_LONG_DOUBLE] {
+ set NO_LONG_DOUBLE 0
+}
+
+if ![info exists NO_LIBGLOSS_LIBRARY_OPTIONS] {
+ set NO_LIBGLOSS_LIBRARY_OPTIONS 0
+}
+
+puts $CONSISTENCY_OPTIONS
+
+regsub -- -.* $target_triplet "" target_chip
+
+#
+# c-consistency-execute -- utility to compile and execute a testcase
+#
+# SRC is the full pathname of the testcase.
+#
+# If the testcase has an associated .cexp file, we source that to run the
+# test instead. We use .cexp instead of .exp so that the testcase is still
+# controlled by the main .exp driver (this is useful when one wants to only
+# run the compile.exp tests for example - one need only pass compile.exp to
+# dejagnu, and not compile.exp, foo1.exp, foo2.exp, etc.).
+#
+proc c-consistency-execute { src cpp_flag out_suffix} {
+ global tmpdir tool srcdir output
+ global exec_output target_chip BASE_COMPILER target_triplet
+ global CONSISTENCY_OPTIONS NO_LONG_DOUBLE
+
+ set consistency_options $CONSISTENCY_OPTIONS
+
+ set rootname [file rootname $src]
+ set dirname [file dirname $src]
+ set basename [file tail $rootname]
+ # Check for alternate driver.
+ if [file exists $rootname.cexp] {
+ verbose "Using alternate driver $basename.cexp" 2
+ set done_p 0
+ catch "set done_p \[source $rootname.cexp\]"
+ if { $done_p } {
+ return
+ }
+ }
+
+ set executable $tmpdir/$basename.x
+
+ regsub "^$srcdir/?" $src "" testcase
+ # If we couldn't rip $srcdir out of `src' then just do the best we can.
+ # The point is to reduce the unnecessary noise in the logs. Don't strip
+ # out too much because different testcases with the same name can confuse
+ # `test-tool'.
+ if [string match "/*" $testcase] {
+ set testcase "[file tail $dirname]/[file tail $src]"
+ }
+
+ # consistency_{compile,execute}_xfail are set by the .cexp script
+ # (if present)
+ if [info exists consistency_compile_xfail] {
+ setup_xfail $consistency_compile_xfail
+ }
+ remote_file build delete $executable
+ verbose "Testing $testcase, $consistency_options" 1
+
+ set options ""
+ lappend options "additional_flags=-w $consistency_options"
+
+ set wrap_file ""
+ if {[file exists "$dirname/WRAP_FILE"] \
+ && [file readable "$dirname/WRAP_FILE"]} {
+ set fd [open "$dirname/WRAP_FILE"]
+ set wrap_file "$dirname/[read -nonewline $fd]"
+ close $fd
+ }
+
+ set comp_output [gcc_target_compile "$cpp_flag $src -x none $wrap_file" "$executable" executable $options];
+
+ # Set a few common compiler messages.
+ set fatal_signal "*cc: Internal compiler error: program*got fatal signal"
+
+ if [string match "$fatal_signal 6" $comp_output] then {
+ fail $testcase "Got Signal 6, $cpp_flag $consistency_options"
+ remote_file build delete $executable
+ return
+ }
+
+ if [string match "$fatal_signal 11" $comp_output] then {
+ fail $testcase "Got Signal 11, $cpp_flag $consistency_options"
+ remote_file build delete $executable
+ return
+ }
+
+ # We shouldn't get these because of -w, but just in case.
+ if [string match "*cc:*warning:*" $comp_output] then {
+ warning "$testcase: (with warnings) $cpp_flag $consistency_options"
+ send_log "$comp_output\n"
+ unresolved "$testcase, $cpp_flag $consistency_options"
+ remote_file build delete $executable
+ return
+ }
+
+ set comp_output [prune_warnings $comp_output]
+
+ if { ![file exists $executable] } {
+ if ![is3way] {
+ fail "$testcase compilation, $cpp_flag $consistency_options"
+ untested "$testcase execution, $cpp_flag $consistency_options"
+ return
+ } else {
+ # FIXME: since we can't test for the existance of a remote
+ # file without short of doing an remote file list, we assume
+ # that since we got no output, it must have compiled.
+ pass "$testcase compilation, $cpp_flag $consistency_options"
+ }
+ } else {
+ pass "$testcase compilation, $cpp_flag $consistency_options"
+ }
+
+ # Check for compilation only.
+ if [file exists $rootname.conly] {
+ remote_file build delete $executable
+ return;
+ }
+
+ # See if this source file uses "long long" types, if it does, and
+ # no_long_long is set, skip execution of the test.
+ if [target_info exists no_long_long] then {
+ if [expr [search_for $src "long long"]] then {
+ untested "$testcase execution, $options"
+ continue
+ }
+ }
+
+ if [info exists consistency_execute_xfail] {
+ setup_xfail $consistency_execute_xfail
+ }
+
+ set exec_output ""
+ set result [consistency_load "$executable" "" ""]
+ set status [lindex $result 0];
+ set exec_output [lindex $result 1];
+
+ # Strip random whitespace junk from the output. the
+ # whitejunk is an artifact of the way we get output
+ # from boards.
+ regsub "^\[ \t\r]+" $exec_output "" clean_output
+ regsub -all "\r" $clean_output "" clean_output
+ regsub -all "\[ \t]*\n\[ \t]*" $clean_output "\n" clean_output
+ regsub -all "\n+" $clean_output "\n" clean_output
+ regsub -all "^\n+$" $clean_output "" clean_output
+
+ if { $status == "pass" } {
+ remote_file build delete $executable
+ }
+ $status "$testcase execution, $cpp_flag $consistency_options"
+
+ if { $status != "pass" } {
+ return
+ }
+
+ # Now save the output of the test programs
+ set outfile_name "$tmpdir/$basename.$out_suffix"
+ set outf [open $outfile_name "w"]
+ if { $clean_output != "" } {
+ puts -nonewline $outf $clean_output
+ }
+ close $outf
+
+ set base_outfile_name "$dirname/${BASE_COMPILER}-results/$basename.$out_suffix"
+
+ # Check that the output for another processor has been saved
+ if { ![file exists $base_outfile_name] } {
+ untested "$testcase consistency - $base_outfile_name doesn't exist"
+ return
+ } elseif { ![file readable $base_outfile_name] } {
+ untested "$testcase consistency - $base_outfile_name is not readable"
+ return
+ }
+
+ # See if this source file uses "long double" types, if it does, and
+ # NO_LONG_DOUBLE is TRUE, skip comparison of the test.
+ if {$NO_LONG_DOUBLE} then {
+ if [expr [search_for $src "long double"]] then {
+ setup_xfail "$target_triplet"
+ }
+ }
+
+ # Compare the outputs
+ if {![catch "exec diff -b $outfile_name $base_outfile_name" message]} {
+ pass "$testcase consistency, $cpp_flag $consistency_options"
+ } else {
+ regsub "\n\[^>\n]\[^\n]*\$" $message "\n" difference
+ fail "$testcase consistency, $cpp_flag $consistency_options\n$difference"
+ }
+}
+
+#
+# search_for -- looks for a string match in a file
+#
+proc search_for { file pattern } {
+ set fd [open $file r]
+ while { [gets $fd cur_line]>=0 } {
+ if [string match "*$pattern*" $cur_line] then {
+ close $fd
+ return 1
+ }
+ }
+ close $fd
+ return 0
+}
+
+if {$NO_LIBGLOSS_LIBRARY_OPTIONS} {
+ # Remove standard libgloss library paths
+ set board_info(powerpc-sim,ldflags) "-msim"
+}
+
+#
+# main test loop
+#
+
+foreach dir [lsort [glob -nocomplain $srcdir/$subdir/\[a-z\]*]] {
+ if [file isdirectory $dir] {
+ set all_sources [concat [glob -nocomplain $dir/*.c] [glob -nocomplain $dir/*.cpp]]
+ foreach src [lsort $all_sources] {
+ # If we're only testing specific files and this isn't one of
+ # them, skip it.
+ if ![runtest_file_p $runtests $src] then {
+ continue
+ }
+ regsub "^.*\\." $src "" suffix
+ if {$suffix != "cpp"} {
+ c-consistency-execute $src "" "out"
+ }
+ c-consistency-execute $src "-x c++" "out++"
+ }
+ }
+}