(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
compat/
scalar-by-value-y.h
       1  extern void abort (void);
       2  
       3  #ifdef __GNUC__
       4  #define va_list __builtin_va_list
       5  #define va_start __builtin_va_start
       6  #define va_arg __builtin_va_arg
       7  #define va_end __builtin_va_end
       8  #else
       9  #include <stdarg.h>
      10  #endif
      11  
      12  #if USE_MEMCMP
      13  /* For comparing vectors.  */
      14  #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \
      15  void NAME##_f0 (TYPE a, PADT b)						\
      16  {									\
      17    if (memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)			\
      18      abort ();								\
      19  }									\
      20  									\
      21  void NAME##_f1 (PADT z0, TYPE a, PADT b)				\
      22  {									\
      23    if (z0 != (PADT) 0							\
      24        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
      25      abort ();								\
      26  }									\
      27  									\
      28  void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b)			\
      29  {									\
      30    if (z0 != (PADT) 0							\
      31        || z1 != (PADT) 0							\
      32        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
      33      abort ();								\
      34  }									\
      35  									\
      36  void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b)		\
      37  {									\
      38    if (z0 != (PADT) 0							\
      39        || z1 != (PADT) 0							\
      40        || z2 != (PADT) 0							\
      41        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
      42      abort ();								\
      43  }									\
      44  									\
      45  void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a, PADT b)	\
      46  {									\
      47    if (z0 != (PADT) 0							\
      48        || z1 != (PADT) 0							\
      49        || z2 != (PADT) 0							\
      50        || z3 != (PADT) 0							\
      51        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
      52      abort ();								\
      53  }									\
      54  									\
      55  void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, TYPE a,	\
      56  		PADT b)							\
      57  {									\
      58    if (z0 != (PADT) 0							\
      59        || z1 != (PADT) 0							\
      60        || z2 != (PADT) 0							\
      61        || z3 != (PADT) 0							\
      62        || z4 != (PADT) 0							\
      63        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
      64      abort ();								\
      65  }									\
      66  									\
      67  void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
      68  		TYPE a, PADT b)						\
      69  {									\
      70    if (z0 != (PADT) 0							\
      71        || z1 != (PADT) 0							\
      72        || z2 != (PADT) 0							\
      73        || z3 != (PADT) 0							\
      74        || z4 != (PADT) 0							\
      75        || z5 != (PADT) 0							\
      76        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
      77      abort ();								\
      78  }									\
      79  									\
      80  void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
      81  		PADT z6, TYPE a, PADT b)				\
      82  {									\
      83    if (z0 != (PADT) 0							\
      84        || z1 != (PADT) 0							\
      85        || z2 != (PADT) 0							\
      86        || z3 != (PADT) 0							\
      87        || z4 != (PADT) 0							\
      88        || z5 != (PADT) 0							\
      89        || z6 != (PADT) 0							\
      90        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
      91      abort ();								\
      92  }									\
      93  									\
      94  void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
      95  		PADT z6, PADT z7, TYPE a, PADT b)			\
      96  {									\
      97    if (z0 != (PADT) 0							\
      98        || z1 != (PADT) 0							\
      99        || z2 != (PADT) 0							\
     100        || z3 != (PADT) 0							\
     101        || z4 != (PADT) 0							\
     102        || z5 != (PADT) 0							\
     103        || z6 != (PADT) 0							\
     104        || z7 != (PADT) 0							\
     105        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
     106      abort ();								\
     107  }									\
     108  									\
     109  void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
     110  		PADT z6, PADT z7, PADT z8, TYPE a, PADT b)		\
     111  {									\
     112    if (z0 != (PADT) 0							\
     113        || z1 != (PADT) 0							\
     114        || z2 != (PADT) 0							\
     115        || z3 != (PADT) 0							\
     116        || z4 != (PADT) 0							\
     117        || z5 != (PADT) 0							\
     118        || z6 != (PADT) 0							\
     119        || z7 != (PADT) 0							\
     120        || z8 != (PADT) 0							\
     121        || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2)		\
     122      abort ();								\
     123  }									\
     124  									\
     125  void NAME##_fv (int n, ...)						\
     126  {									\
     127    va_list ap;								\
     128    TYPE x;								\
     129    va_start (ap, n);							\
     130  									\
     131    while (n-- != 0)							\
     132      if (va_arg (ap, PADT) != (PADT) 0)					\
     133        abort ();								\
     134  									\
     135    x = va_arg (ap, TYPE);						\
     136    if (memcmp (&x, &VAL, sizeof (x)) != 0 )				\
     137      abort ();								\
     138  									\
     139    if (va_arg (ap, PADT) != VAL2)					\
     140      abort ();								\
     141  									\
     142    va_end (ap);								\
     143  }
     144  
     145  #else
     146  
     147  #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \
     148  void NAME##_f0 (TYPE a, PADT b)						\
     149  {									\
     150    if (a != VAL || b != VAL2)						\
     151      abort ();								\
     152  }									\
     153  									\
     154  void NAME##_f1 (PADT z0, TYPE a, PADT b)				\
     155  {									\
     156    if (z0 != (PADT) 0							\
     157        || a != VAL || b != VAL2)						\
     158      abort ();								\
     159  }									\
     160  									\
     161  void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b)			\
     162  {									\
     163    if (z0 != (PADT) 0							\
     164        || z1 != (PADT) 0							\
     165        || a != VAL || b != VAL2)						\
     166      abort ();								\
     167  }									\
     168  									\
     169  void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b)		\
     170  {									\
     171    if (z0 != (PADT) 0							\
     172        || z1 != (PADT) 0							\
     173        || z2 != (PADT) 0							\
     174        || a != VAL || b != VAL2)						\
     175      abort ();								\
     176  }									\
     177  									\
     178  void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a, PADT b)	\
     179  {									\
     180    if (z0 != (PADT) 0							\
     181        || z1 != (PADT) 0							\
     182        || z2 != (PADT) 0							\
     183        || z3 != (PADT) 0							\
     184        || a != VAL || b != VAL2)						\
     185      abort ();								\
     186  }									\
     187  									\
     188  void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, TYPE a,	\
     189  		PADT b)							\
     190  {									\
     191    if (z0 != (PADT) 0							\
     192        || z1 != (PADT) 0							\
     193        || z2 != (PADT) 0							\
     194        || z3 != (PADT) 0							\
     195        || z4 != (PADT) 0							\
     196        || a != VAL || b != VAL2)						\
     197      abort ();								\
     198  }									\
     199  									\
     200  void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
     201  		TYPE a, PADT b)						\
     202  {									\
     203    if (z0 != (PADT) 0							\
     204        || z1 != (PADT) 0							\
     205        || z2 != (PADT) 0							\
     206        || z3 != (PADT) 0							\
     207        || z4 != (PADT) 0							\
     208        || z5 != (PADT) 0							\
     209        || a != VAL || b != VAL2)						\
     210      abort ();								\
     211  }									\
     212  									\
     213  void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
     214  		PADT z6, TYPE a, PADT b)				\
     215  {									\
     216    if (z0 != (PADT) 0							\
     217        || z1 != (PADT) 0							\
     218        || z2 != (PADT) 0							\
     219        || z3 != (PADT) 0							\
     220        || z4 != (PADT) 0							\
     221        || z5 != (PADT) 0							\
     222        || z6 != (PADT) 0							\
     223        || a != VAL || b != VAL2)						\
     224      abort ();								\
     225  }									\
     226  									\
     227  void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
     228  		PADT z6, PADT z7, TYPE a, PADT b)			\
     229  {									\
     230    if (z0 != (PADT) 0							\
     231        || z1 != (PADT) 0							\
     232        || z2 != (PADT) 0							\
     233        || z3 != (PADT) 0							\
     234        || z4 != (PADT) 0							\
     235        || z5 != (PADT) 0							\
     236        || z6 != (PADT) 0							\
     237        || z7 != (PADT) 0							\
     238        || a != VAL || b != VAL2)						\
     239      abort ();								\
     240  }									\
     241  									\
     242  void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5,	\
     243  		PADT z6, PADT z7, PADT z8, TYPE a, PADT b)		\
     244  {									\
     245    if (z0 != (PADT) 0							\
     246        || z1 != (PADT) 0							\
     247        || z2 != (PADT) 0							\
     248        || z3 != (PADT) 0							\
     249        || z4 != (PADT) 0							\
     250        || z5 != (PADT) 0							\
     251        || z6 != (PADT) 0							\
     252        || z7 != (PADT) 0							\
     253        || z8 != (PADT) 0							\
     254        || a != VAL || b != VAL2)						\
     255      abort ();								\
     256  }									\
     257  									\
     258  void NAME##_fv (int n, ...)						\
     259  {									\
     260    va_list ap;								\
     261  									\
     262    va_start (ap, n);							\
     263  									\
     264    while (n-- != 0)							\
     265      if (va_arg (ap, PADT) != (PADT) 0)					\
     266        abort ();								\
     267  									\
     268    if (va_arg (ap, TYPE) != VAL)						\
     269      abort ();								\
     270  									\
     271    if (va_arg (ap, PADT) != VAL2)					\
     272      abort ();								\
     273  									\
     274    va_end (ap);								\
     275  }
     276  
     277  #endif