Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / gcc.dg / compat / struct-return-3_y.c
blobdbd471351008f00e9a617ebca36b1c77dca85832
1 #include <stdarg.h>
3 #include "compat-common.h"
5 #include "small-struct-defs.h"
6 #include "small-struct-init.h"
8 #define T(TYPE) \
9 extern TYPE g01##TYPE, g02##TYPE, g03##TYPE, g04##TYPE; \
10 extern TYPE g05##TYPE, g06##TYPE, g07##TYPE, g08##TYPE; \
11 extern TYPE g09##TYPE, g10##TYPE, g11##TYPE, g12##TYPE; \
12 extern TYPE g13##TYPE, g14##TYPE, g15##TYPE, g16##TYPE; \
14 extern void check##TYPE (TYPE x, int i); \
16 void \
17 checkg##TYPE (void) \
18 { \
19 check##TYPE (g01##TYPE, 1); \
20 check##TYPE (g02##TYPE, 2); \
21 check##TYPE (g03##TYPE, 3); \
22 check##TYPE (g04##TYPE, 4); \
23 check##TYPE (g05##TYPE, 5); \
24 check##TYPE (g06##TYPE, 6); \
25 check##TYPE (g07##TYPE, 7); \
26 check##TYPE (g08##TYPE, 8); \
27 check##TYPE (g09##TYPE, 9); \
28 check##TYPE (g10##TYPE, 10); \
29 check##TYPE (g11##TYPE, 11); \
30 check##TYPE (g12##TYPE, 12); \
31 check##TYPE (g13##TYPE, 13); \
32 check##TYPE (g14##TYPE, 14); \
33 check##TYPE (g15##TYPE, 15); \
34 check##TYPE (g16##TYPE, 16); \
35 } \
37 TYPE \
38 test0##TYPE (void) \
39 { \
40 return g01##TYPE; \
41 } \
43 TYPE \
44 test1##TYPE (TYPE x01) \
45 { \
46 return x01; \
47 } \
49 TYPE \
50 testva##TYPE (int n, ...) \
51 { \
52 int i; \
53 TYPE rslt; \
54 va_list ap; \
55 va_start (ap, n); \
56 for (i = 0; i < n; i++) \
57 rslt = va_arg (ap, TYPE); \
58 va_end (ap); \
59 return rslt; \
62 T(Sc)
63 T(Ss)
64 T(Si)
65 T(Scs)
66 T(Ssc)
67 T(Sic)
68 T(Sci)
69 T(Ssi)
70 T(Sis)
71 T(Scsi)
72 T(Scis)
73 T(Ssci)
74 T(Ssic)
75 T(Sisc)
76 T(Sics)