aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compat/strct-layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compat/strct-layout.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/compat/strct-layout.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compat/strct-layout.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compat/strct-layout.c
new file mode 100644
index 000000000..b77e1636d
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/compat/strct-layout.c
@@ -0,0 +1,69 @@
+typedef struct
+{
+ char a;
+ int b;
+ char c;
+ short d;
+ double e;
+ char f;
+} T;
+
+#if COMPILER != 1
+f (T *x)
+{
+ x[0].a = 'a';
+ x[0].b = 47114711;
+ x[0].c = 'c';
+ x[0].d = 1234;
+ x[0].e = 3.141592897932;
+ x[0].f = '*';
+
+ x[1].a = 'A';
+ x[1].b = 71417141;
+ x[1].c = 'C';
+ x[1].d = 4321;
+ x[1].e = 2.718281828459;
+ x[1].f = '?';
+}
+#endif
+
+#if COMPILER != 2
+g (T *x)
+{
+ if (x[0].a != 'a')
+ abort ();
+ if (x[0].b != 47114711)
+ abort ();
+ if (x[0].c != 'c')
+ abort ();
+ if (x[0].d != 1234)
+ abort ();
+ if (x[0].e != 3.141592897932)
+ abort ();
+ if (x[0].f != '*')
+ abort ();
+
+ if (x[1].a != 'A')
+ abort ();
+ if (x[1].b != 71417141)
+ abort ();
+ if (x[1].c != 'C')
+ abort ();
+ if (x[1].d != 4321)
+ abort ();
+ if (x[1].e != 2.718281828459)
+ abort ();
+ if (x[1].f != '?')
+ abort ();
+}
+#endif
+
+#if COMPILER != 2
+main ()
+{
+ T x[2];
+ f (x);
+ g (x);
+ exit (0);
+}
+#endif