aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/basic/T_st.x
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/basic/T_st.x')
-rwxr-xr-xfinal/ABI-Testsuite/test/basic/T_st.x236
1 files changed, 236 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/basic/T_st.x b/final/ABI-Testsuite/test/basic/T_st.x
new file mode 100755
index 00000000..05100d0d
--- /dev/null
+++ b/final/ABI-Testsuite/test/basic/T_st.x
@@ -0,0 +1,236 @@
+// This file is distributed under the University of Illinois Open Source License.
+// See LICENSE.TXT for details.
+// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
+// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o
+// RUN: linker -o %t2%exeext %t1.o %t2.o
+// RUN: runtool %t2%exeext | checker "TEST PASSED"
+#include "testsuite.h"
+#ifdef __cplusplus
+
+struct sfld {
+ char c;
+ short s;
+};
+//SIG(1 sfld) C1{ Fc Fs}
+
+
+
+static void Test_sfld()
+{
+ {
+ init_simple_test("sfld");
+ sfld lv;
+ check2(sizeof(lv), 4, "sizeof(sfld)");
+ check2(__alignof__(lv), 2, "__alignof__(sfld)");
+ check_field_offset(lv, c, 0, "sfld.c");
+ check_field_offset(lv, s, 2, "sfld.s");
+ }
+}
+static Arrange_To_Call_Me vsfld(Test_sfld, "sfld", 4);
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ifld {
+ char c;
+ int s;
+};
+//SIG(1 ifld) C1{ Fc Fi}
+
+
+
+static void Test_ifld()
+{
+ {
+ init_simple_test("ifld");
+ ifld lv;
+ check2(sizeof(lv), 8, "sizeof(ifld)");
+ check2(__alignof__(lv), 4, "__alignof__(ifld)");
+ check_field_offset(lv, c, 0, "ifld.c");
+ check_field_offset(lv, s, 4, "ifld.s");
+ }
+}
+static Arrange_To_Call_Me vifld(Test_ifld, "ifld", 8);
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct lfld {
+ char c;
+ long s;
+};
+//SIG(1 lfld) C1{ Fc Fl}
+
+
+
+static void Test_lfld()
+{
+ {
+ init_simple_test("lfld");
+ lfld lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(lfld)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(lfld)");
+ check_field_offset(lv, c, 0, "lfld.c");
+ check_field_offset(lv, s, ABISELECT(8,4), "lfld.s");
+ }
+}
+static Arrange_To_Call_Me vlfld(Test_lfld, "lfld", ABISELECT(16,8));
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct llfld {
+ char c;
+ __tsi64 s;
+};
+//SIG(1 llfld) C1{ Fc FL}
+
+
+
+static void Test_llfld()
+{
+ {
+ init_simple_test("llfld");
+ llfld lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(llfld)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(llfld)");
+ check_field_offset(lv, c, 0, "llfld.c");
+ check_field_offset(lv, s, ABISELECT(8,4), "llfld.s");
+ }
+}
+static Arrange_To_Call_Me vllfld(Test_llfld, "llfld", ABISELECT(16,12));
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ffld {
+ char c;
+ float s;
+};
+//SIG(1 ffld) C1{ Fc Fi}
+
+
+
+static void Test_ffld()
+{
+ {
+ init_simple_test("ffld");
+ ffld lv;
+ check2(sizeof(lv), 8, "sizeof(ffld)");
+ check2(__alignof__(lv), 4, "__alignof__(ffld)");
+ check_field_offset(lv, c, 0, "ffld.c");
+ check_field_offset(lv, s, 4, "ffld.s");
+ }
+}
+static Arrange_To_Call_Me vffld(Test_ffld, "ffld", 8);
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dfld {
+ char c;
+ double s;
+};
+//SIG(1 dfld) C1{ Fc FL}
+
+
+
+static void Test_dfld()
+{
+ {
+ init_simple_test("dfld");
+ dfld lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(dfld)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dfld)");
+ check_field_offset(lv, c, 0, "dfld.c");
+ check_field_offset(lv, s, ABISELECT(8,4), "dfld.s");
+ }
+}
+static Arrange_To_Call_Me vdfld(Test_dfld, "dfld", ABISELECT(16,12));
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ldfld {
+ char c;
+ long double s;
+};
+//SIG(1 ldfld) C1{ Fc FD}
+
+
+
+static void Test_ldfld()
+{
+ {
+ init_simple_test("ldfld");
+ ldfld lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(ldfld)");
+ check2(__alignof__(lv), ABISELECT(16,4), "__alignof__(ldfld)");
+ check_field_offset(lv, c, 0, "ldfld.c");
+ check_field_offset(lv, s, ABISELECT(16,4), "ldfld.s");
+ }
+}
+static Arrange_To_Call_Me vldfld(Test_ldfld, "ldfld", ABISELECT(32,16));
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct zb {
+ int :0;
+};
+//SIG(1 zb) C1{ Fi:0}
+
+
+
+static void Test_zb()
+{
+ {
+ init_simple_test("zb");
+ static zb lv;
+ check2(sizeof(lv), ABISELECT(1,1), "sizeof(zb)");
+ check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(zb)");
+ }
+}
+static Arrange_To_Call_Me vzb(Test_zb, "zb", ABISELECT(1,1));
+
+#else // __cplusplus
+
+#endif // __cplusplus
+
+//============================================================================
+