(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
compat/
struct-by-value-10_x.c
       1  #include "compat-common.h"
       2  
       3  #include "fp2-struct-defs.h"
       4  #include "fp2-struct-check.h"
       5  
       6  #define TEST(TYPE)						\
       7  TYPE g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE;		\
       8  TYPE g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE;		\
       9  TYPE g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE;		\
      10  TYPE g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE;		\
      11  								\
      12  extern void init##TYPE (TYPE *p, double x);			\
      13  extern void checkg##TYPE (void);				\
      14  extern void							\
      15  test##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4,			\
      16  	    TYPE s5, TYPE s6, TYPE s7, TYPE s8,			\
      17  	    TYPE s9, TYPE s10, TYPE s11, TYPE s12,		\
      18  	    TYPE s13, TYPE s14, TYPE s15, TYPE s16);		\
      19  extern void testva##TYPE (int n, ...);				\
      20  								\
      21  void								\
      22  test2_##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4,		\
      23  	      TYPE s5, TYPE s6, TYPE s7, TYPE s8)		\
      24  {								\
      25    test##TYPE (s1, g2s##TYPE, s2, g4s##TYPE,			\
      26  	      s3, g6s##TYPE, s4, g8s##TYPE,			\
      27  	      s5, g10s##TYPE, s6, g12s##TYPE,			\
      28  	      s7, g14s##TYPE, s8, g16s##TYPE);			\
      29  }								\
      30  								\
      31  void								\
      32  testit##TYPE (void)						\
      33  {								\
      34    DEBUG_FPUTS (#TYPE);						\
      35    DEBUG_FPUTS (" init: ");					\
      36    init##TYPE  ( &g1s##TYPE,  (double)1);			\
      37    init##TYPE  ( &g2s##TYPE,  (double)2);			\
      38    init##TYPE  ( &g3s##TYPE,  (double)3);			\
      39    init##TYPE  ( &g4s##TYPE,  (double)4);			\
      40    init##TYPE  ( &g5s##TYPE,  (double)5);			\
      41    init##TYPE  ( &g6s##TYPE,  (double)6);			\
      42    init##TYPE  ( &g7s##TYPE,  (double)7);			\
      43    init##TYPE  ( &g8s##TYPE,  (double)8);			\
      44    init##TYPE  ( &g9s##TYPE,  (double)9);			\
      45    init##TYPE  (&g10s##TYPE, (double)10);			\
      46    init##TYPE  (&g11s##TYPE, (double)11);			\
      47    init##TYPE  (&g12s##TYPE, (double)12);			\
      48    init##TYPE  (&g13s##TYPE, (double)13);			\
      49    init##TYPE  (&g14s##TYPE, (double)14);			\
      50    init##TYPE  (&g15s##TYPE, (double)15);			\
      51    init##TYPE  (&g16s##TYPE, (double)16);			\
      52    checkg##TYPE ();						\
      53    DEBUG_NL;							\
      54    DEBUG_FPUTS (#TYPE);						\
      55    DEBUG_FPUTS (" test: ");					\
      56    test##TYPE (g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
      57  	      g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
      58  	      g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE,	\
      59  	      g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE);	\
      60    DEBUG_NL;							\
      61    DEBUG_FPUTS (#TYPE);						\
      62    DEBUG_FPUTS (" testva:");					\
      63    DEBUG_NL;							\
      64    testva##TYPE (1,						\
      65  		g1s##TYPE);					\
      66    DEBUG_NL;							\
      67    testva##TYPE (2,						\
      68  		g1s##TYPE, g2s##TYPE);				\
      69    DEBUG_NL;							\
      70    testva##TYPE (3,						\
      71  		g1s##TYPE, g2s##TYPE, g3s##TYPE);		\
      72    DEBUG_NL;							\
      73    testva##TYPE (4,						\
      74  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE);	\
      75    DEBUG_NL;							\
      76    testva##TYPE (5,						\
      77  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
      78  		g5s##TYPE);					\
      79    DEBUG_NL;							\
      80    testva##TYPE (6,						\
      81  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
      82  		g5s##TYPE, g6s##TYPE);				\
      83    DEBUG_NL;							\
      84    testva##TYPE (7,						\
      85  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
      86  		g5s##TYPE, g6s##TYPE, g7s##TYPE);		\
      87    DEBUG_NL;							\
      88    testva##TYPE (8,						\
      89  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
      90  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE);	\
      91    DEBUG_NL;							\
      92    testva##TYPE (9,						\
      93  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
      94  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
      95  		g9s##TYPE);					\
      96    DEBUG_NL;							\
      97    testva##TYPE (10,						\
      98  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
      99  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
     100  		g9s##TYPE, g10s##TYPE);				\
     101    DEBUG_NL;							\
     102    testva##TYPE (11,						\
     103  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
     104  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
     105  		g9s##TYPE, g10s##TYPE, g11s##TYPE);		\
     106    DEBUG_NL;							\
     107    testva##TYPE (12,						\
     108  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
     109  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
     110  		g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE);	\
     111    DEBUG_NL;							\
     112    testva##TYPE (13,						\
     113  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
     114  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
     115  		g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE,	\
     116  		g13s##TYPE);					\
     117    DEBUG_NL;							\
     118    testva##TYPE (14,						\
     119  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
     120  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
     121  		g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE,	\
     122  		g13s##TYPE, g14s##TYPE);			\
     123    DEBUG_NL;							\
     124    testva##TYPE (15,						\
     125  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
     126  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
     127  		g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE,	\
     128  		g13s##TYPE, g14s##TYPE, g15s##TYPE);		\
     129    DEBUG_NL;							\
     130    testva##TYPE (16,						\
     131  		g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE,	\
     132  		g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE,	\
     133  		g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE,	\
     134  		g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \
     135    DEBUG_NL;							\
     136    DEBUG_FPUTS (#TYPE);						\
     137    DEBUG_FPUTS (" test2: ");					\
     138    test2_##TYPE (g1s##TYPE, g3s##TYPE, g5s##TYPE, g7s##TYPE,	\
     139  		g9s##TYPE, g11s##TYPE, g13s##TYPE, g15s##TYPE);	\
     140    DEBUG_NL;							\
     141  }
     142  
     143  TEST(Sfd)
     144  TEST(Sfl)
     145  TEST(Sdf)
     146  TEST(Sdl)
     147  TEST(Slf)
     148  TEST(Sld)
     149  TEST(Sfdl)
     150  TEST(Sfld)
     151  TEST(Sdfl)
     152  TEST(Sdlf)
     153  TEST(Slfd)
     154  TEST(Sldf)
     155  
     156  #undef T
     157  
     158  void
     159  struct_by_value_10_x ()
     160  {
     161  DEBUG_INIT
     162  
     163  #define T(TYPE) testit##TYPE ();
     164  
     165  T(Sfd)
     166  T(Sfl)
     167  T(Sdf)
     168  T(Sdl)
     169  T(Slf)
     170  T(Sld)
     171  T(Sfdl)
     172  T(Sfld)
     173  T(Sdfl)
     174  T(Sdlf)
     175  T(Slfd)
     176  T(Sldf)
     177  
     178  DEBUG_FINI
     179  
     180  if (fails != 0)
     181    abort ();
     182  
     183  #undef T
     184  }