#include "compat-common.h"
|
#include "compat-common.h"
|
|
|
#define T(TYPE) \
|
#define T(TYPE) \
|
TYPE g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE; \
|
TYPE g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE; \
|
TYPE g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE; \
|
TYPE g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE; \
|
TYPE g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE; \
|
TYPE g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE; \
|
TYPE g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE; \
|
TYPE g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE; \
|
\
|
\
|
extern void init##TYPE (TYPE *p, int i); \
|
extern void init##TYPE (TYPE *p, int i); \
|
extern void checkg##TYPE (void); \
|
extern void checkg##TYPE (void); \
|
extern void \
|
extern void \
|
test##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \
|
test##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \
|
TYPE s5, TYPE s6, TYPE s7, TYPE s8, \
|
TYPE s5, TYPE s6, TYPE s7, TYPE s8, \
|
TYPE s9, TYPE s10, TYPE s11, TYPE s12, \
|
TYPE s9, TYPE s10, TYPE s11, TYPE s12, \
|
TYPE s13, TYPE s14, TYPE s15, TYPE s16); \
|
TYPE s13, TYPE s14, TYPE s15, TYPE s16); \
|
extern void testva##TYPE (int n, ...); \
|
extern void testva##TYPE (int n, ...); \
|
\
|
\
|
void \
|
void \
|
test2_##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \
|
test2_##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \
|
TYPE s5, TYPE s6, TYPE s7, TYPE s8) \
|
TYPE s5, TYPE s6, TYPE s7, TYPE s8) \
|
{ \
|
{ \
|
test##TYPE (s1, g2s##TYPE, s2, g4s##TYPE, \
|
test##TYPE (s1, g2s##TYPE, s2, g4s##TYPE, \
|
s3, g6s##TYPE, s4, g8s##TYPE, \
|
s3, g6s##TYPE, s4, g8s##TYPE, \
|
s5, g10s##TYPE, s6, g12s##TYPE, \
|
s5, g10s##TYPE, s6, g12s##TYPE, \
|
s7, g14s##TYPE, s8, g16s##TYPE); \
|
s7, g14s##TYPE, s8, g16s##TYPE); \
|
} \
|
} \
|
\
|
\
|
void \
|
void \
|
testit##TYPE (void) \
|
testit##TYPE (void) \
|
{ \
|
{ \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (" init: "); \
|
DEBUG_FPUTS (" init: "); \
|
init##TYPE ( &g1s##TYPE, 1); \
|
init##TYPE ( &g1s##TYPE, 1); \
|
init##TYPE ( &g2s##TYPE, 2); \
|
init##TYPE ( &g2s##TYPE, 2); \
|
init##TYPE ( &g3s##TYPE, 3); \
|
init##TYPE ( &g3s##TYPE, 3); \
|
init##TYPE ( &g4s##TYPE, 4); \
|
init##TYPE ( &g4s##TYPE, 4); \
|
init##TYPE ( &g5s##TYPE, 5); \
|
init##TYPE ( &g5s##TYPE, 5); \
|
init##TYPE ( &g6s##TYPE, 6); \
|
init##TYPE ( &g6s##TYPE, 6); \
|
init##TYPE ( &g7s##TYPE, 7); \
|
init##TYPE ( &g7s##TYPE, 7); \
|
init##TYPE ( &g8s##TYPE, 8); \
|
init##TYPE ( &g8s##TYPE, 8); \
|
init##TYPE ( &g9s##TYPE, 9); \
|
init##TYPE ( &g9s##TYPE, 9); \
|
init##TYPE (&g10s##TYPE, 10); \
|
init##TYPE (&g10s##TYPE, 10); \
|
init##TYPE (&g11s##TYPE, 11); \
|
init##TYPE (&g11s##TYPE, 11); \
|
init##TYPE (&g12s##TYPE, 12); \
|
init##TYPE (&g12s##TYPE, 12); \
|
init##TYPE (&g13s##TYPE, 13); \
|
init##TYPE (&g13s##TYPE, 13); \
|
init##TYPE (&g14s##TYPE, 14); \
|
init##TYPE (&g14s##TYPE, 14); \
|
init##TYPE (&g15s##TYPE, 15); \
|
init##TYPE (&g15s##TYPE, 15); \
|
init##TYPE (&g16s##TYPE, 16); \
|
init##TYPE (&g16s##TYPE, 16); \
|
checkg##TYPE (); \
|
checkg##TYPE (); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (" test: "); \
|
DEBUG_FPUTS (" test: "); \
|
test##TYPE (g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
test##TYPE (g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \
|
g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (" testva:"); \
|
DEBUG_FPUTS (" testva:"); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (1, \
|
testva##TYPE (1, \
|
g1s##TYPE); \
|
g1s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (2, \
|
testva##TYPE (2, \
|
g1s##TYPE, g2s##TYPE); \
|
g1s##TYPE, g2s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (3, \
|
testva##TYPE (3, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE); \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (4, \
|
testva##TYPE (4, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE); \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (5, \
|
testva##TYPE (5, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE); \
|
g5s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (6, \
|
testva##TYPE (6, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE); \
|
g5s##TYPE, g6s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (7, \
|
testva##TYPE (7, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE); \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (8, \
|
testva##TYPE (8, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE); \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (9, \
|
testva##TYPE (9, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE); \
|
g9s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (10, \
|
testva##TYPE (10, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE); \
|
g9s##TYPE, g10s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (11, \
|
testva##TYPE (11, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE); \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (12, \
|
testva##TYPE (12, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE); \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (13, \
|
testva##TYPE (13, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g13s##TYPE); \
|
g13s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (14, \
|
testva##TYPE (14, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g13s##TYPE, g14s##TYPE); \
|
g13s##TYPE, g14s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (15, \
|
testva##TYPE (15, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g13s##TYPE, g14s##TYPE, g15s##TYPE); \
|
g13s##TYPE, g14s##TYPE, g15s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
testva##TYPE (16, \
|
testva##TYPE (16, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
|
g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \
|
g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (#TYPE); \
|
DEBUG_FPUTS (" test2:"); \
|
DEBUG_FPUTS (" test2:"); \
|
test2_##TYPE (g1s##TYPE, g3s##TYPE, g5s##TYPE, g7s##TYPE, \
|
test2_##TYPE (g1s##TYPE, g3s##TYPE, g5s##TYPE, g7s##TYPE, \
|
g9s##TYPE, g11s##TYPE, g13s##TYPE, g15s##TYPE); \
|
g9s##TYPE, g11s##TYPE, g13s##TYPE, g15s##TYPE); \
|
DEBUG_NL; \
|
DEBUG_NL; \
|
}
|
}
|
|
|
#include "small-struct-defs.h"
|
#include "small-struct-defs.h"
|
#include "small-struct-check.h"
|
#include "small-struct-check.h"
|
|
|
T(Sc)
|
T(Sc)
|
T(Ss)
|
T(Ss)
|
T(Si)
|
T(Si)
|
T(Scs)
|
T(Scs)
|
T(Ssc)
|
T(Ssc)
|
T(Sic)
|
T(Sic)
|
T(Sci)
|
T(Sci)
|
T(Ssi)
|
T(Ssi)
|
T(Sis)
|
T(Sis)
|
T(Scsi)
|
T(Scsi)
|
T(Scis)
|
T(Scis)
|
T(Ssci)
|
T(Ssci)
|
T(Ssic)
|
T(Ssic)
|
T(Sisc)
|
T(Sisc)
|
T(Sics)
|
T(Sics)
|
|
|
#undef T
|
#undef T
|
|
|
void
|
void
|
struct_by_value_3_x ()
|
struct_by_value_3_x ()
|
{
|
{
|
DEBUG_INIT
|
DEBUG_INIT
|
|
|
#define T(TYPE) testit##TYPE ();
|
#define T(TYPE) testit##TYPE ();
|
|
|
T(Sc)
|
T(Sc)
|
T(Ss)
|
T(Ss)
|
T(Si)
|
T(Si)
|
T(Scs)
|
T(Scs)
|
T(Ssc)
|
T(Ssc)
|
T(Sic)
|
T(Sic)
|
T(Sci)
|
T(Sci)
|
T(Ssi)
|
T(Ssi)
|
T(Sis)
|
T(Sis)
|
T(Scsi)
|
T(Scsi)
|
T(Scis)
|
T(Scis)
|
T(Ssci)
|
T(Ssci)
|
T(Ssic)
|
T(Ssic)
|
T(Sisc)
|
T(Sisc)
|
T(Sics)
|
T(Sics)
|
|
|
DEBUG_FINI
|
DEBUG_FINI
|
|
|
if (fails != 0)
|
if (fails != 0)
|
abort ();
|
abort ();
|
|
|
#undef T
|
#undef T
|
}
|
}
|
|
|