1  #define SETUP(NUM,TMODE)				\
       2  v##NUM##TMODE g_v##NUM##TMODE;				\
       3  TMODE g_##TMODE;					\
       4  							\
       5  extern void test_v##NUM##TMODE (void);			\
       6  extern void checkp_##NUM##TMODE (TMODE *);		\
       7  							\
       8  void							\
       9  pass_v##NUM##TMODE (v##NUM##TMODE v)			\
      10  {							\
      11    u##NUM##TMODE u;					\
      12    int j;						\
      13    TMODE a[NUM];						\
      14    							\
      15    u.v = v;						\
      16    for (j = 0; j < NUM; j++)				\
      17      a[j] = u.a[j];					\
      18    checkp_##NUM##TMODE (a);				\
      19  }							\
      20  							\
      21  v##NUM##TMODE						\
      22  return_v##NUM##TMODE (void)				\
      23  {							\
      24    return g_v##NUM##TMODE;				\
      25  }
      26  
      27  #define CHECK(NUM,TMODE)				\
      28    test_v##NUM##TMODE()