annotate gcc/testsuite/gcc.dg/compat/struct-return-19_x.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 #include "compat-common.h"
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 #ifdef SKIP_VA
kono
parents:
diff changeset
4 const int test_va = 0;
kono
parents:
diff changeset
5 #else
kono
parents:
diff changeset
6 const int test_va = 1;
kono
parents:
diff changeset
7 #endif
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 #define T(TYPE) \
kono
parents:
diff changeset
10 TYPE g01##TYPE, g02##TYPE, g03##TYPE, g04##TYPE; \
kono
parents:
diff changeset
11 TYPE g05##TYPE, g06##TYPE, g07##TYPE, g08##TYPE; \
kono
parents:
diff changeset
12 TYPE g09##TYPE, g10##TYPE, g11##TYPE, g12##TYPE; \
kono
parents:
diff changeset
13 TYPE g13##TYPE, g14##TYPE, g15##TYPE, g16##TYPE; \
kono
parents:
diff changeset
14 \
kono
parents:
diff changeset
15 extern void init##TYPE (TYPE *p, int i); \
kono
parents:
diff changeset
16 extern void checkg##TYPE (void); \
kono
parents:
diff changeset
17 extern TYPE test0##TYPE (void); \
kono
parents:
diff changeset
18 extern TYPE test1##TYPE (TYPE); \
kono
parents:
diff changeset
19 extern TYPE testva##TYPE (int n, ...); \
kono
parents:
diff changeset
20 \
kono
parents:
diff changeset
21 void \
kono
parents:
diff changeset
22 testit##TYPE (void) \
kono
parents:
diff changeset
23 { \
kono
parents:
diff changeset
24 TYPE rslt; \
kono
parents:
diff changeset
25 DEBUG_FPUTS (#TYPE); \
kono
parents:
diff changeset
26 DEBUG_FPUTS (" init: "); \
kono
parents:
diff changeset
27 init##TYPE (&g01##TYPE, 1); \
kono
parents:
diff changeset
28 init##TYPE (&g02##TYPE, 2); \
kono
parents:
diff changeset
29 init##TYPE (&g03##TYPE, 3); \
kono
parents:
diff changeset
30 init##TYPE (&g04##TYPE, 4); \
kono
parents:
diff changeset
31 init##TYPE (&g05##TYPE, 5); \
kono
parents:
diff changeset
32 init##TYPE (&g06##TYPE, 6); \
kono
parents:
diff changeset
33 init##TYPE (&g07##TYPE, 7); \
kono
parents:
diff changeset
34 init##TYPE (&g08##TYPE, 8); \
kono
parents:
diff changeset
35 init##TYPE (&g09##TYPE, 9); \
kono
parents:
diff changeset
36 init##TYPE (&g10##TYPE, 10); \
kono
parents:
diff changeset
37 init##TYPE (&g11##TYPE, 11); \
kono
parents:
diff changeset
38 init##TYPE (&g12##TYPE, 12); \
kono
parents:
diff changeset
39 init##TYPE (&g13##TYPE, 13); \
kono
parents:
diff changeset
40 init##TYPE (&g14##TYPE, 14); \
kono
parents:
diff changeset
41 init##TYPE (&g15##TYPE, 15); \
kono
parents:
diff changeset
42 init##TYPE (&g16##TYPE, 16); \
kono
parents:
diff changeset
43 checkg##TYPE (); \
kono
parents:
diff changeset
44 DEBUG_NL; \
kono
parents:
diff changeset
45 DEBUG_FPUTS (#TYPE); \
kono
parents:
diff changeset
46 DEBUG_FPUTS (" test0: "); \
kono
parents:
diff changeset
47 rslt = test0##TYPE (); \
kono
parents:
diff changeset
48 check##TYPE (rslt, 1); \
kono
parents:
diff changeset
49 DEBUG_NL; \
kono
parents:
diff changeset
50 DEBUG_FPUTS (#TYPE); \
kono
parents:
diff changeset
51 DEBUG_FPUTS (" test1: "); \
kono
parents:
diff changeset
52 rslt = test1##TYPE (g01##TYPE); \
kono
parents:
diff changeset
53 check##TYPE (rslt, 1); \
kono
parents:
diff changeset
54 if (test_va) \
kono
parents:
diff changeset
55 { \
kono
parents:
diff changeset
56 DEBUG_NL; \
kono
parents:
diff changeset
57 DEBUG_FPUTS (#TYPE); \
kono
parents:
diff changeset
58 DEBUG_FPUTS (" testva: "); \
kono
parents:
diff changeset
59 rslt = testva##TYPE (1, g01##TYPE); \
kono
parents:
diff changeset
60 check##TYPE (rslt, 1); \
kono
parents:
diff changeset
61 rslt = testva##TYPE (5, g01##TYPE, g02##TYPE, \
kono
parents:
diff changeset
62 g03##TYPE, g04##TYPE, \
kono
parents:
diff changeset
63 g05##TYPE); \
kono
parents:
diff changeset
64 check##TYPE (rslt, 5); \
kono
parents:
diff changeset
65 rslt = testva##TYPE (9, g01##TYPE, g02##TYPE, \
kono
parents:
diff changeset
66 g03##TYPE, g04##TYPE, \
kono
parents:
diff changeset
67 g05##TYPE, g06##TYPE, \
kono
parents:
diff changeset
68 g07##TYPE, g08##TYPE, \
kono
parents:
diff changeset
69 g09##TYPE); \
kono
parents:
diff changeset
70 check##TYPE (rslt, 9); \
kono
parents:
diff changeset
71 rslt = testva##TYPE (16, g01##TYPE, g02##TYPE, \
kono
parents:
diff changeset
72 g03##TYPE, g04##TYPE, \
kono
parents:
diff changeset
73 g05##TYPE, g06##TYPE, \
kono
parents:
diff changeset
74 g07##TYPE, g08##TYPE, \
kono
parents:
diff changeset
75 g09##TYPE, g10##TYPE, \
kono
parents:
diff changeset
76 g11##TYPE, g12##TYPE, \
kono
parents:
diff changeset
77 g13##TYPE, g14##TYPE, \
kono
parents:
diff changeset
78 g15##TYPE, g16##TYPE); \
kono
parents:
diff changeset
79 check##TYPE (rslt, 16); \
kono
parents:
diff changeset
80 } \
kono
parents:
diff changeset
81 DEBUG_NL; \
kono
parents:
diff changeset
82 }
kono
parents:
diff changeset
83
kono
parents:
diff changeset
84 #include "mixed-struct-defs.h"
kono
parents:
diff changeset
85 #include "mixed-struct-check.h"
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 T(Scdc)
kono
parents:
diff changeset
88 T(Sd)
kono
parents:
diff changeset
89 T(Sdi)
kono
parents:
diff changeset
90 T(Scsdsc)
kono
parents:
diff changeset
91 T(Scsdis)
kono
parents:
diff changeset
92 T(Scsdisc)
kono
parents:
diff changeset
93 T(Ssds)
kono
parents:
diff changeset
94 T(Ssdsc)
kono
parents:
diff changeset
95 T(Scssdssc)
kono
parents:
diff changeset
96
kono
parents:
diff changeset
97 #undef T
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 void
kono
parents:
diff changeset
100 struct_return_19_x ()
kono
parents:
diff changeset
101 {
kono
parents:
diff changeset
102 DEBUG_INIT
kono
parents:
diff changeset
103
kono
parents:
diff changeset
104 #define T(TYPE) testit##TYPE ();
kono
parents:
diff changeset
105
kono
parents:
diff changeset
106 T(Scdc)
kono
parents:
diff changeset
107 T(Sd)
kono
parents:
diff changeset
108 T(Sdi)
kono
parents:
diff changeset
109 T(Scsdsc)
kono
parents:
diff changeset
110 T(Scsdis)
kono
parents:
diff changeset
111 T(Scsdisc)
kono
parents:
diff changeset
112 T(Ssds)
kono
parents:
diff changeset
113 T(Ssdsc)
kono
parents:
diff changeset
114 T(Scssdssc)
kono
parents:
diff changeset
115
kono
parents:
diff changeset
116 DEBUG_FINI
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 if (fails != 0)
kono
parents:
diff changeset
119 abort ();
kono
parents:
diff changeset
120
kono
parents:
diff changeset
121 #undef T
kono
parents:
diff changeset
122 }