diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f11e2fb72b0b9515fe099499f1c2765546f8236c..f5ca84ba9144bd745e1bfbcaab6cb74c19946615 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,30 @@ 2003-06-11 Janis Johnson <janis187@us.ibm.com> + * gcc.dg/compat/struct-by-value-11_main.c: New file. + * gcc.dg/compat/struct-by-value-11_x.c: New file. + * gcc.dg/compat/struct-by-value-11_y.c: New file. + * gcc.dg/compat/struct-by-value-12_main.c: New file. + * gcc.dg/compat/struct-by-value-12_x.c: New file. + * gcc.dg/compat/struct-by-value-12_y.c: New file. + * gcc.dg/compat/struct-by-value-13_main.c: New file. + * gcc.dg/compat/struct-by-value-13_x.c: New file. + * gcc.dg/compat/struct-by-value-13_y.c: New file. + * gcc.dg/compat/struct-by-value-14_main.c: New file. + * gcc.dg/compat/struct-by-value-14_x.c: New file. + * gcc.dg/compat/struct-by-value-14_y.c: New file. + * gcc.dg/compat/struct-by-value-15_main.c: New file. + * gcc.dg/compat/struct-by-value-15_x.c: New file. + * gcc.dg/compat/struct-by-value-15_y.c: New file. + * gcc.dg/compat/struct-by-value-16_main.c: New file. + * gcc.dg/compat/struct-by-value-16_x.c: New file. + * gcc.dg/compat/struct-by-value-16_y.c: New file. + * gcc.dg/compat/struct-by-value-17_main.c: New file. + * gcc.dg/compat/struct-by-value-17_x.c: New file. + * gcc.dg/compat/struct-by-value-17_y.c: New file. + * gcc.dg/compat/struct-by-value-18_main.c: New file. + * gcc.dg/compat/struct-by-value-18_x.c: New file. + * gcc.dg/compat/struct-by-value-18_y.c: New file. + * gcc.dg/compat/scalar-by-value-3_main.c: New file. * gcc.dg/compat/scalar-by-value-3_x.c: New file. * gcc.dg/compat/scalar-by-value-3_y.c: New file. diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-11_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-11_main.c new file mode 100644 index 0000000000000000000000000000000000000000..400e94c2cad444a632074a94d0230f8461e1a553 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-11_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are of type + _Complex char. */ + +extern void struct_by_value_11_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_11_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-11_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-11_x.c new file mode 100644 index 0000000000000000000000000000000000000000..237f67164034c4de8167aa0801ce080f89f409ca --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-11_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(cc, _Complex char) +CHECKS(cc, _Complex char) + +TEST(Scc1, _Complex char) +TEST(Scc2, _Complex char) +TEST(Scc3, _Complex char) +TEST(Scc4, _Complex char) +TEST(Scc5, _Complex char) +TEST(Scc6, _Complex char) +TEST(Scc7, _Complex char) +TEST(Scc8, _Complex char) +TEST(Scc9, _Complex char) +TEST(Scc10, _Complex char) +TEST(Scc11, _Complex char) +TEST(Scc12, _Complex char) +TEST(Scc13, _Complex char) +TEST(Scc14, _Complex char) +TEST(Scc15, _Complex char) +TEST(Scc16, _Complex char) + +#undef T + +void +struct_by_value_11_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Scc1, _Complex char) +T(Scc2, _Complex char) +T(Scc3, _Complex char) +T(Scc4, _Complex char) +T(Scc5, _Complex char) +T(Scc6, _Complex char) +T(Scc7, _Complex char) +T(Scc8, _Complex char) +T(Scc9, _Complex char) +T(Scc10, _Complex char) +T(Scc11, _Complex char) +T(Scc12, _Complex char) +T(Scc13, _Complex char) +T(Scc14, _Complex char) +T(Scc15, _Complex char) +T(Scc16, _Complex char) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-11_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-11_y.c new file mode 100644 index 0000000000000000000000000000000000000000..c0f0ad528af8c6ecb2248feb046ad5917f42bfd2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-11_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(cc,_Complex char) +INITS(cc, _Complex char) + +TEST(Scc1, _Complex char) +TEST(Scc2, _Complex char) +TEST(Scc3, _Complex char) +TEST(Scc4, _Complex char) +TEST(Scc5, _Complex char) +TEST(Scc6, _Complex char) +TEST(Scc7, _Complex char) +TEST(Scc8, _Complex char) +TEST(Scc9, _Complex char) +TEST(Scc10, _Complex char) +TEST(Scc11, _Complex char) +TEST(Scc12, _Complex char) +TEST(Scc13, _Complex char) +TEST(Scc14, _Complex char) +TEST(Scc15, _Complex char) +TEST(Scc16, _Complex char) diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-12_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-12_main.c new file mode 100644 index 0000000000000000000000000000000000000000..ab4faac09f336e1cb5a01927e209bebce8a208a5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-12_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are of type + _Complex short. */ + +extern void struct_by_value_12_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_12_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-12_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-12_x.c new file mode 100644 index 0000000000000000000000000000000000000000..2ba6fc6c0b6ed2d9e7657bbe097969920e6111c9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-12_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(cs, _Complex short) +CHECKS(cs, _Complex short) + +TEST(Scs1, _Complex short) +TEST(Scs2, _Complex short) +TEST(Scs3, _Complex short) +TEST(Scs4, _Complex short) +TEST(Scs5, _Complex short) +TEST(Scs6, _Complex short) +TEST(Scs7, _Complex short) +TEST(Scs8, _Complex short) +TEST(Scs9, _Complex short) +TEST(Scs10, _Complex short) +TEST(Scs11, _Complex short) +TEST(Scs12, _Complex short) +TEST(Scs13, _Complex short) +TEST(Scs14, _Complex short) +TEST(Scs15, _Complex short) +TEST(Scs16, _Complex short) + +#undef T + +void +struct_by_value_12_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Scs1, _Complex short) +T(Scs2, _Complex short) +T(Scs3, _Complex short) +T(Scs4, _Complex short) +T(Scs5, _Complex short) +T(Scs6, _Complex short) +T(Scs7, _Complex short) +T(Scs8, _Complex short) +T(Scs9, _Complex short) +T(Scs10, _Complex short) +T(Scs11, _Complex short) +T(Scs12, _Complex short) +T(Scs13, _Complex short) +T(Scs14, _Complex short) +T(Scs15, _Complex short) +T(Scs16, _Complex short) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-12_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-12_y.c new file mode 100644 index 0000000000000000000000000000000000000000..50a08b467af09ea5fd1bf4591fe0be999686e203 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-12_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(cs,_Complex short) +INITS(cs, _Complex short) + +TEST(Scs1, _Complex short) +TEST(Scs2, _Complex short) +TEST(Scs3, _Complex short) +TEST(Scs4, _Complex short) +TEST(Scs5, _Complex short) +TEST(Scs6, _Complex short) +TEST(Scs7, _Complex short) +TEST(Scs8, _Complex short) +TEST(Scs9, _Complex short) +TEST(Scs10, _Complex short) +TEST(Scs11, _Complex short) +TEST(Scs12, _Complex short) +TEST(Scs13, _Complex short) +TEST(Scs14, _Complex short) +TEST(Scs15, _Complex short) +TEST(Scs16, _Complex short) diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-13_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-13_main.c new file mode 100644 index 0000000000000000000000000000000000000000..b853bb88eee1e5e3798a33ed498e13b0e64629fe --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-13_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are type + _Complex int. */ + +extern void struct_by_value_l3_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_13_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-13_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-13_x.c new file mode 100644 index 0000000000000000000000000000000000000000..bf7af3a3603c0063eb5369a561a7dddab33d1b54 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-13_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(ci, _Complex int) +CHECKS(ci, _Complex int) + +TEST(Sci1, _Complex int) +TEST(Sci2, _Complex int) +TEST(Sci3, _Complex int) +TEST(Sci4, _Complex int) +TEST(Sci5, _Complex int) +TEST(Sci6, _Complex int) +TEST(Sci7, _Complex int) +TEST(Sci8, _Complex int) +TEST(Sci9, _Complex int) +TEST(Sci10, _Complex int) +TEST(Sci11, _Complex int) +TEST(Sci12, _Complex int) +TEST(Sci13, _Complex int) +TEST(Sci14, _Complex int) +TEST(Sci15, _Complex int) +TEST(Sci16, _Complex int) + +#undef T + +void +struct_by_value_13_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Sci1, _Complex int) +T(Sci2, _Complex int) +T(Sci3, _Complex int) +T(Sci4, _Complex int) +T(Sci5, _Complex int) +T(Sci6, _Complex int) +T(Sci7, _Complex int) +T(Sci8, _Complex int) +T(Sci9, _Complex int) +T(Sci10, _Complex int) +T(Sci11, _Complex int) +T(Sci12, _Complex int) +T(Sci13, _Complex int) +T(Sci14, _Complex int) +T(Sci15, _Complex int) +T(Sci16, _Complex int) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-13_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-13_y.c new file mode 100644 index 0000000000000000000000000000000000000000..e53ee59fc4309b555cfffadb1d4c42729d447300 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-13_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(ci,_Complex int) +INITS(ci, _Complex int) + +TEST(Sci1, _Complex int) +TEST(Sci2, _Complex int) +TEST(Sci3, _Complex int) +TEST(Sci4, _Complex int) +TEST(Sci5, _Complex int) +TEST(Sci6, _Complex int) +TEST(Sci7, _Complex int) +TEST(Sci8, _Complex int) +TEST(Sci9, _Complex int) +TEST(Sci10, _Complex int) +TEST(Sci11, _Complex int) +TEST(Sci12, _Complex int) +TEST(Sci13, _Complex int) +TEST(Sci14, _Complex int) +TEST(Sci15, _Complex int) +TEST(Sci16, _Complex int) diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-14_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-14_main.c new file mode 100644 index 0000000000000000000000000000000000000000..a332e93b12216a1817d19e8bc69b1479c57d8941 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-14_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are of type + _Complex long. */ + +extern void struct_by_value_14_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_14_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-14_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-14_x.c new file mode 100644 index 0000000000000000000000000000000000000000..765144c5376a924dd7e2fbb3878bc5f14c439c5b --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-14_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(cl, _Complex long) +CHECKS(cl, _Complex long) + +TEST(Scl1, _Complex long) +TEST(Scl2, _Complex long) +TEST(Scl3, _Complex long) +TEST(Scl4, _Complex long) +TEST(Scl5, _Complex long) +TEST(Scl6, _Complex long) +TEST(Scl7, _Complex long) +TEST(Scl8, _Complex long) +TEST(Scl9, _Complex long) +TEST(Scl10, _Complex long) +TEST(Scl11, _Complex long) +TEST(Scl12, _Complex long) +TEST(Scl13, _Complex long) +TEST(Scl14, _Complex long) +TEST(Scl15, _Complex long) +TEST(Scl16, _Complex long) + +#undef T + +void +struct_by_value_14_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Scl1, _Complex long) +T(Scl2, _Complex long) +T(Scl3, _Complex long) +T(Scl4, _Complex long) +T(Scl5, _Complex long) +T(Scl6, _Complex long) +T(Scl7, _Complex long) +T(Scl8, _Complex long) +T(Scl9, _Complex long) +T(Scl10, _Complex long) +T(Scl11, _Complex long) +T(Scl12, _Complex long) +T(Scl13, _Complex long) +T(Scl14, _Complex long) +T(Scl15, _Complex long) +T(Scl16, _Complex long) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-14_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-14_y.c new file mode 100644 index 0000000000000000000000000000000000000000..640b11bb06d607b8f9257d6e7051f16a8c8d94f7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-14_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(cl,_Complex long) +INITS(cl, _Complex long) + +TEST(Scl1, _Complex long) +TEST(Scl2, _Complex long) +TEST(Scl3, _Complex long) +TEST(Scl4, _Complex long) +TEST(Scl5, _Complex long) +TEST(Scl6, _Complex long) +TEST(Scl7, _Complex long) +TEST(Scl8, _Complex long) +TEST(Scl9, _Complex long) +TEST(Scl10, _Complex long) +TEST(Scl11, _Complex long) +TEST(Scl12, _Complex long) +TEST(Scl13, _Complex long) +TEST(Scl14, _Complex long) +TEST(Scl15, _Complex long) +TEST(Scl16, _Complex long) diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-15_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-15_main.c new file mode 100644 index 0000000000000000000000000000000000000000..6e5d8e0f48ac9e4d5f1d962a742e8ab21f78827d --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-15_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are of type + _Complex long long. */ + +extern void struct_by_value_15_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_15_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-15_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-15_x.c new file mode 100644 index 0000000000000000000000000000000000000000..732582e76b59acc89d7dcc92c4721da5622c49f3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-15_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(cll, _Complex long long) +CHECKS(cll, _Complex long long) + +TEST(Scll1, _Complex long long) +TEST(Scll2, _Complex long long) +TEST(Scll3, _Complex long long) +TEST(Scll4, _Complex long long) +TEST(Scll5, _Complex long long) +TEST(Scll6, _Complex long long) +TEST(Scll7, _Complex long long) +TEST(Scll8, _Complex long long) +TEST(Scll9, _Complex long long) +TEST(Scll10, _Complex long long) +TEST(Scll11, _Complex long long) +TEST(Scll12, _Complex long long) +TEST(Scll13, _Complex long long) +TEST(Scll14, _Complex long long) +TEST(Scll15, _Complex long long) +TEST(Scll16, _Complex long long) + +#undef T + +void +struct_by_value_15_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Scll1, _Complex long long) +T(Scll2, _Complex long long) +T(Scll3, _Complex long long) +T(Scll4, _Complex long long) +T(Scll5, _Complex long long) +T(Scll6, _Complex long long) +T(Scll7, _Complex long long) +T(Scll8, _Complex long long) +T(Scll9, _Complex long long) +T(Scll10, _Complex long long) +T(Scll11, _Complex long long) +T(Scll12, _Complex long long) +T(Scll13, _Complex long long) +T(Scll14, _Complex long long) +T(Scll15, _Complex long long) +T(Scll16, _Complex long long) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-15_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-15_y.c new file mode 100644 index 0000000000000000000000000000000000000000..e7cf60a2d455a4cda0c0ba487d8c8d831925af26 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-15_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(cll,_Complex long long) +INITS(cll, _Complex long long) + +TEST(Scll1, _Complex long long) +TEST(Scll2, _Complex long long) +TEST(Scll3, _Complex long long) +TEST(Scll4, _Complex long long) +TEST(Scll5, _Complex long long) +TEST(Scll6, _Complex long long) +TEST(Scll7, _Complex long long) +TEST(Scll8, _Complex long long) +TEST(Scll9, _Complex long long) +TEST(Scll10, _Complex long long) +TEST(Scll11, _Complex long long) +TEST(Scll12, _Complex long long) +TEST(Scll13, _Complex long long) +TEST(Scll14, _Complex long long) +TEST(Scll15, _Complex long long) +TEST(Scll16, _Complex long long) diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-16_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-16_main.c new file mode 100644 index 0000000000000000000000000000000000000000..31447bee69e3050ee9e1071e9059f7e513aa4157 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-16_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are of type + _Complex float. */ + +extern void struct_by_value_16_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_16_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-16_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-16_x.c new file mode 100644 index 0000000000000000000000000000000000000000..ef701767eb87a69a291f86096eab06dacc83842b --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-16_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(cf, _Complex float) +CHECKS(cf, _Complex float) + +TEST(Scf1, _Complex float) +TEST(Scf2, _Complex float) +TEST(Scf3, _Complex float) +TEST(Scf4, _Complex float) +TEST(Scf5, _Complex float) +TEST(Scf6, _Complex float) +TEST(Scf7, _Complex float) +TEST(Scf8, _Complex float) +TEST(Scf9, _Complex float) +TEST(Scf10, _Complex float) +TEST(Scf11, _Complex float) +TEST(Scf12, _Complex float) +TEST(Scf13, _Complex float) +TEST(Scf14, _Complex float) +TEST(Scf15, _Complex float) +TEST(Scf16, _Complex float) + +#undef T + +void +struct_by_value_16_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Scf1, _Complex float) +T(Scf2, _Complex float) +T(Scf3, _Complex float) +T(Scf4, _Complex float) +T(Scf5, _Complex float) +T(Scf6, _Complex float) +T(Scf7, _Complex float) +T(Scf8, _Complex float) +T(Scf9, _Complex float) +T(Scf10, _Complex float) +T(Scf11, _Complex float) +T(Scf12, _Complex float) +T(Scf13, _Complex float) +T(Scf14, _Complex float) +T(Scf15, _Complex float) +T(Scf16, _Complex float) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-16_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-16_y.c new file mode 100644 index 0000000000000000000000000000000000000000..9aa8c3f33a08e1bcaf821940883aa7d70aa6c13c --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-16_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(cf,_Complex float) +INITS(cf, _Complex float) + +TEST(Scf1, _Complex float) +TEST(Scf2, _Complex float) +TEST(Scf3, _Complex float) +TEST(Scf4, _Complex float) +TEST(Scf5, _Complex float) +TEST(Scf6, _Complex float) +TEST(Scf7, _Complex float) +TEST(Scf8, _Complex float) +TEST(Scf9, _Complex float) +TEST(Scf10, _Complex float) +TEST(Scf11, _Complex float) +TEST(Scf12, _Complex float) +TEST(Scf13, _Complex float) +TEST(Scf14, _Complex float) +TEST(Scf15, _Complex float) +TEST(Scf16, _Complex float) diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-17_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-17_main.c new file mode 100644 index 0000000000000000000000000000000000000000..3d97146b309bf6d70f1d70ac59e64cf1e5d421e7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-17_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are of type + _Complex double. */ + +extern void struct_by_value_17_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_17_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-17_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-17_x.c new file mode 100644 index 0000000000000000000000000000000000000000..624cc34df60c2a4322c148f0e495097b684300b0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-17_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(cd, _Complex double) +CHECKS(cd, _Complex double) + +TEST(Scd1, _Complex double) +TEST(Scd2, _Complex double) +TEST(Scd3, _Complex double) +TEST(Scd4, _Complex double) +TEST(Scd5, _Complex double) +TEST(Scd6, _Complex double) +TEST(Scd7, _Complex double) +TEST(Scd8, _Complex double) +TEST(Scd9, _Complex double) +TEST(Scd10, _Complex double) +TEST(Scd11, _Complex double) +TEST(Scd12, _Complex double) +TEST(Scd13, _Complex double) +TEST(Scd14, _Complex double) +TEST(Scd15, _Complex double) +TEST(Scd16, _Complex double) + +#undef T + +void +struct_by_value_17_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Scd1, _Complex double) +T(Scd2, _Complex double) +T(Scd3, _Complex double) +T(Scd4, _Complex double) +T(Scd5, _Complex double) +T(Scd6, _Complex double) +T(Scd7, _Complex double) +T(Scd8, _Complex double) +T(Scd9, _Complex double) +T(Scd10, _Complex double) +T(Scd11, _Complex double) +T(Scd12, _Complex double) +T(Scd13, _Complex double) +T(Scd14, _Complex double) +T(Scd15, _Complex double) +T(Scd16, _Complex double) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-17_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-17_y.c new file mode 100644 index 0000000000000000000000000000000000000000..f8e1a6aca064876338c84dc136b0e3564b885b47 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-17_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(cd,_Complex double) +INITS(cd, _Complex double) + +TEST(Scd1, _Complex double) +TEST(Scd2, _Complex double) +TEST(Scd3, _Complex double) +TEST(Scd4, _Complex double) +TEST(Scd5, _Complex double) +TEST(Scd6, _Complex double) +TEST(Scd7, _Complex double) +TEST(Scd8, _Complex double) +TEST(Scd9, _Complex double) +TEST(Scd10, _Complex double) +TEST(Scd11, _Complex double) +TEST(Scd12, _Complex double) +TEST(Scd13, _Complex double) +TEST(Scd14, _Complex double) +TEST(Scd15, _Complex double) +TEST(Scd16, _Complex double) diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-18_main.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-18_main.c new file mode 100644 index 0000000000000000000000000000000000000000..8a4889cc0978cda427d8dca8b878f14903d20bac --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-18_main.c @@ -0,0 +1,14 @@ +/* Test structures passed by value, including to a function with a + variable-length argument lists. All struct members are of type + _Complex long double. */ + +extern void struct_by_value_18_x (void); +extern void exit (int); +int fails; + +int +main () +{ + struct_by_value_18_x (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-18_x.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-18_x.c new file mode 100644 index 0000000000000000000000000000000000000000..ec02c568de91f312c7a6ad95429b6a1e15f32e7a --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-18_x.c @@ -0,0 +1,55 @@ +#include "compat-common.h" + +#include "fp-struct-defs.h" +#include "fp-struct-check.h" +#include "fp-struct-test-by-value-x.h" + +DEFS(cld, _Complex long double) +CHECKS(cld, _Complex long double) + +TEST(Scld1, _Complex long double) +TEST(Scld2, _Complex long double) +TEST(Scld3, _Complex long double) +TEST(Scld4, _Complex long double) +TEST(Scld5, _Complex long double) +TEST(Scld6, _Complex long double) +TEST(Scld7, _Complex long double) +TEST(Scld8, _Complex long double) +TEST(Scld9, _Complex long double) +TEST(Scld10, _Complex long double) +TEST(Scld11, _Complex long double) +TEST(Scld12, _Complex long double) +TEST(Scld13, _Complex long double) +TEST(Scld14, _Complex long double) +TEST(Scld15, _Complex long double) +TEST(Scld16, _Complex long double) + +#undef T + +void +struct_by_value_18_x () +{ +#define T(TYPE, MTYPE) testit##TYPE (); + +T(Scld1, _Complex long double) +T(Scld2, _Complex long double) +T(Scld3, _Complex long double) +T(Scld4, _Complex long double) +T(Scld5, _Complex long double) +T(Scld6, _Complex long double) +T(Scld7, _Complex long double) +T(Scld8, _Complex long double) +T(Scld9, _Complex long double) +T(Scld10, _Complex long double) +T(Scld11, _Complex long double) +T(Scld12, _Complex long double) +T(Scld13, _Complex long double) +T(Scld14, _Complex long double) +T(Scld15, _Complex long double) +T(Scld16, _Complex long double) + +if (fails != 0) + abort (); + +#undef T +} diff --git a/gcc/testsuite/gcc.dg/compat/struct-by-value-18_y.c b/gcc/testsuite/gcc.dg/compat/struct-by-value-18_y.c new file mode 100644 index 0000000000000000000000000000000000000000..662419326b91fe8b0a2c448c092c7e90c7e24041 --- /dev/null +++ b/gcc/testsuite/gcc.dg/compat/struct-by-value-18_y.c @@ -0,0 +1,34 @@ +#include <stdarg.h> + +#include "compat-common.h" + +/* Turn off checking for variable arguments with -DSKIPVA. */ +#ifdef SKIPVA +const int test_va = 0; +#else +const int test_va = 1; +#endif + +#include "fp-struct-defs.h" +#include "fp-struct-init.h" +#include "fp-struct-test-by-value-y.h" + +DEFS(cld,_Complex long double) +INITS(cld, _Complex long double) + +TEST(Scld1, _Complex long double) +TEST(Scld2, _Complex long double) +TEST(Scld3, _Complex long double) +TEST(Scld4, _Complex long double) +TEST(Scld5, _Complex long double) +TEST(Scld6, _Complex long double) +TEST(Scld7, _Complex long double) +TEST(Scld8, _Complex long double) +TEST(Scld9, _Complex long double) +TEST(Scld10, _Complex long double) +TEST(Scld11, _Complex long double) +TEST(Scld12, _Complex long double) +TEST(Scld13, _Complex long double) +TEST(Scld14, _Complex long double) +TEST(Scld15, _Complex long double) +TEST(Scld16, _Complex long double)