1*1fd5a2e1SPrashanth Swaminathan /**
2*1fd5a2e1SPrashanth Swaminathan Copyright 1993 Bill Triggs <[email protected]>
3*1fd5a2e1SPrashanth Swaminathan Copyright 1995-2017 Bruno Haible <[email protected]>
4*1fd5a2e1SPrashanth Swaminathan
5*1fd5a2e1SPrashanth Swaminathan This program is free software: you can redistribute it and/or modify
6*1fd5a2e1SPrashanth Swaminathan it under the terms of the GNU General Public License as published by
7*1fd5a2e1SPrashanth Swaminathan the Free Software Foundation; either version 2 of the License, or
8*1fd5a2e1SPrashanth Swaminathan (at your option) any later version.
9*1fd5a2e1SPrashanth Swaminathan
10*1fd5a2e1SPrashanth Swaminathan This program is distributed in the hope that it will be useful,
11*1fd5a2e1SPrashanth Swaminathan but WITHOUT ANY WARRANTY; without even the implied warranty of
12*1fd5a2e1SPrashanth Swaminathan MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13*1fd5a2e1SPrashanth Swaminathan GNU General Public License for more details.
14*1fd5a2e1SPrashanth Swaminathan
15*1fd5a2e1SPrashanth Swaminathan You should have received a copy of the GNU General Public License
16*1fd5a2e1SPrashanth Swaminathan along with this program. If not, see <http://www.gnu.org/licenses/>.
17*1fd5a2e1SPrashanth Swaminathan **/
18*1fd5a2e1SPrashanth Swaminathan
19*1fd5a2e1SPrashanth Swaminathan /* { dg-do run } */
20*1fd5a2e1SPrashanth Swaminathan
21*1fd5a2e1SPrashanth Swaminathan #include <stdio.h>
22*1fd5a2e1SPrashanth Swaminathan #include <stdlib.h>
23*1fd5a2e1SPrashanth Swaminathan #include <string.h>
24*1fd5a2e1SPrashanth Swaminathan #include <ffi.h>
25*1fd5a2e1SPrashanth Swaminathan #include "alignof.h"
26*1fd5a2e1SPrashanth Swaminathan #include <stdarg.h>
27*1fd5a2e1SPrashanth Swaminathan
28*1fd5a2e1SPrashanth Swaminathan /* libffi testsuite local changes -------------------------------- */
29*1fd5a2e1SPrashanth Swaminathan #ifdef DGTEST
30*1fd5a2e1SPrashanth Swaminathan /* Redefine exit(1) as a test failure */
31*1fd5a2e1SPrashanth Swaminathan #define exit(V) (void)((V) ? (abort(), 1) : exit(0))
32*1fd5a2e1SPrashanth Swaminathan int count = 0;
33*1fd5a2e1SPrashanth Swaminathan char rbuf1[2048];
34*1fd5a2e1SPrashanth Swaminathan char rbuf2[2048];
_fprintf(FILE * stream,const char * format,...)35*1fd5a2e1SPrashanth Swaminathan int _fprintf(FILE *stream, const char *format, ...)
36*1fd5a2e1SPrashanth Swaminathan {
37*1fd5a2e1SPrashanth Swaminathan va_list args;
38*1fd5a2e1SPrashanth Swaminathan va_start(args, format);
39*1fd5a2e1SPrashanth Swaminathan
40*1fd5a2e1SPrashanth Swaminathan switch (count++)
41*1fd5a2e1SPrashanth Swaminathan {
42*1fd5a2e1SPrashanth Swaminathan case 0:
43*1fd5a2e1SPrashanth Swaminathan case 1:
44*1fd5a2e1SPrashanth Swaminathan vsprintf(&rbuf1[strlen(rbuf1)], format, args);
45*1fd5a2e1SPrashanth Swaminathan break;
46*1fd5a2e1SPrashanth Swaminathan case 2:
47*1fd5a2e1SPrashanth Swaminathan printf("%s", rbuf1);
48*1fd5a2e1SPrashanth Swaminathan vsprintf(rbuf2, format, args);
49*1fd5a2e1SPrashanth Swaminathan break;
50*1fd5a2e1SPrashanth Swaminathan case 3:
51*1fd5a2e1SPrashanth Swaminathan vsprintf(&rbuf2[strlen(rbuf2)], format, args);
52*1fd5a2e1SPrashanth Swaminathan printf("%s", rbuf2);
53*1fd5a2e1SPrashanth Swaminathan if (strcmp (rbuf1, rbuf2)) abort();
54*1fd5a2e1SPrashanth Swaminathan break;
55*1fd5a2e1SPrashanth Swaminathan }
56*1fd5a2e1SPrashanth Swaminathan
57*1fd5a2e1SPrashanth Swaminathan va_end(args);
58*1fd5a2e1SPrashanth Swaminathan
59*1fd5a2e1SPrashanth Swaminathan return 0;
60*1fd5a2e1SPrashanth Swaminathan }
61*1fd5a2e1SPrashanth Swaminathan #define fprintf _fprintf
62*1fd5a2e1SPrashanth Swaminathan #endif
63*1fd5a2e1SPrashanth Swaminathan /* --------------------------------------------------------------- */
64*1fd5a2e1SPrashanth Swaminathan
65*1fd5a2e1SPrashanth Swaminathan #include "testcases.c"
66*1fd5a2e1SPrashanth Swaminathan
67*1fd5a2e1SPrashanth Swaminathan #ifndef ABI_NUM
68*1fd5a2e1SPrashanth Swaminathan #define ABI_NUM FFI_DEFAULT_ABI
69*1fd5a2e1SPrashanth Swaminathan #endif
70*1fd5a2e1SPrashanth Swaminathan
71*1fd5a2e1SPrashanth Swaminathan /* Definitions that ought to be part of libffi. */
72*1fd5a2e1SPrashanth Swaminathan static ffi_type ffi_type_char;
73*1fd5a2e1SPrashanth Swaminathan #define ffi_type_slonglong ffi_type_sint64
74*1fd5a2e1SPrashanth Swaminathan #define ffi_type_ulonglong ffi_type_uint64
75*1fd5a2e1SPrashanth Swaminathan
76*1fd5a2e1SPrashanth Swaminathan /* libffi does not support arrays inside structs. */
77*1fd5a2e1SPrashanth Swaminathan #define SKIP_EXTRA_STRUCTS
78*1fd5a2e1SPrashanth Swaminathan
79*1fd5a2e1SPrashanth Swaminathan #define FFI_PREP_CIF(cif,argtypes,rettype) \
80*1fd5a2e1SPrashanth Swaminathan if (ffi_prep_cif(&(cif),ABI_NUM,sizeof(argtypes)/sizeof(argtypes[0]),&rettype,argtypes) != FFI_OK) abort()
81*1fd5a2e1SPrashanth Swaminathan #define FFI_PREP_CIF_NOARGS(cif,rettype) \
82*1fd5a2e1SPrashanth Swaminathan if (ffi_prep_cif(&(cif),ABI_NUM,0,&rettype,NULL) != FFI_OK) abort()
83*1fd5a2e1SPrashanth Swaminathan #define FFI_CALL(cif,fn,args,retaddr) \
84*1fd5a2e1SPrashanth Swaminathan ffi_call(&(cif),(void(*)(void))(fn),retaddr,args)
85*1fd5a2e1SPrashanth Swaminathan
clear_traces_i(long a,long b,long c,long d,long e,long f,long g,long h,long i,long j,long k,long l,long m,long n,long o,long p)86*1fd5a2e1SPrashanth Swaminathan long clear_traces_i (long a, long b, long c, long d, long e, long f, long g, long h,
87*1fd5a2e1SPrashanth Swaminathan long i, long j, long k, long l, long m, long n, long o, long p)
88*1fd5a2e1SPrashanth Swaminathan { return 0; }
clear_traces_f(float a,float b,float c,float d,float e,float f,float g,float h,float i,float j,float k,float l,float m,float n,float o,float p)89*1fd5a2e1SPrashanth Swaminathan float clear_traces_f (float a, float b, float c, float d, float e, float f, float g,
90*1fd5a2e1SPrashanth Swaminathan float h, float i, float j, float k, float l, float m, float n,
91*1fd5a2e1SPrashanth Swaminathan float o, float p)
92*1fd5a2e1SPrashanth Swaminathan { return 0.0; }
clear_traces_d(double a,double b,double c,double d,double e,double f,double g,double h,double i,double j,double k,double l,double m,double n,double o,double p)93*1fd5a2e1SPrashanth Swaminathan double clear_traces_d (double a, double b, double c, double d, double e, double f, double g,
94*1fd5a2e1SPrashanth Swaminathan double h, double i, double j, double k, double l, double m, double n,
95*1fd5a2e1SPrashanth Swaminathan double o, double p)
96*1fd5a2e1SPrashanth Swaminathan { return 0.0; }
clear_traces_J(void)97*1fd5a2e1SPrashanth Swaminathan J clear_traces_J (void)
98*1fd5a2e1SPrashanth Swaminathan { J j; j.l1 = j.l2 = 0; return j; }
clear_traces(void)99*1fd5a2e1SPrashanth Swaminathan void clear_traces (void)
100*1fd5a2e1SPrashanth Swaminathan { clear_traces_i(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
101*1fd5a2e1SPrashanth Swaminathan clear_traces_f(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
102*1fd5a2e1SPrashanth Swaminathan clear_traces_d(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
103*1fd5a2e1SPrashanth Swaminathan clear_traces_J();
104*1fd5a2e1SPrashanth Swaminathan }
105*1fd5a2e1SPrashanth Swaminathan
106*1fd5a2e1SPrashanth Swaminathan void
void_tests(void)107*1fd5a2e1SPrashanth Swaminathan void_tests (void)
108*1fd5a2e1SPrashanth Swaminathan {
109*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 1
110*1fd5a2e1SPrashanth Swaminathan v_v();
111*1fd5a2e1SPrashanth Swaminathan clear_traces();
112*1fd5a2e1SPrashanth Swaminathan {
113*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
114*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_void);
115*1fd5a2e1SPrashanth Swaminathan {
116*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,v_v,NULL,NULL);
117*1fd5a2e1SPrashanth Swaminathan }
118*1fd5a2e1SPrashanth Swaminathan }
119*1fd5a2e1SPrashanth Swaminathan #endif
120*1fd5a2e1SPrashanth Swaminathan return;
121*1fd5a2e1SPrashanth Swaminathan }
122*1fd5a2e1SPrashanth Swaminathan void
int_tests(void)123*1fd5a2e1SPrashanth Swaminathan int_tests (void)
124*1fd5a2e1SPrashanth Swaminathan {
125*1fd5a2e1SPrashanth Swaminathan int ir;
126*1fd5a2e1SPrashanth Swaminathan ffi_arg retvalue;
127*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 2
128*1fd5a2e1SPrashanth Swaminathan ir = i_v();
129*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
130*1fd5a2e1SPrashanth Swaminathan fflush(out);
131*1fd5a2e1SPrashanth Swaminathan ir = 0; clear_traces();
132*1fd5a2e1SPrashanth Swaminathan {
133*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
134*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_sint);
135*1fd5a2e1SPrashanth Swaminathan {
136*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,i_v,NULL,&retvalue);
137*1fd5a2e1SPrashanth Swaminathan ir = retvalue;
138*1fd5a2e1SPrashanth Swaminathan }
139*1fd5a2e1SPrashanth Swaminathan }
140*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
141*1fd5a2e1SPrashanth Swaminathan fflush(out);
142*1fd5a2e1SPrashanth Swaminathan #endif
143*1fd5a2e1SPrashanth Swaminathan
144*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 3
145*1fd5a2e1SPrashanth Swaminathan ir = i_i(i1);
146*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
147*1fd5a2e1SPrashanth Swaminathan fflush(out);
148*1fd5a2e1SPrashanth Swaminathan ir = 0; clear_traces();
149*1fd5a2e1SPrashanth Swaminathan {
150*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint };
151*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
152*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_sint);
153*1fd5a2e1SPrashanth Swaminathan {
154*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1 };
155*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,i_i,args,&retvalue);
156*1fd5a2e1SPrashanth Swaminathan ir = retvalue;
157*1fd5a2e1SPrashanth Swaminathan }
158*1fd5a2e1SPrashanth Swaminathan }
159*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
160*1fd5a2e1SPrashanth Swaminathan fflush(out);
161*1fd5a2e1SPrashanth Swaminathan #endif
162*1fd5a2e1SPrashanth Swaminathan
163*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 4
164*1fd5a2e1SPrashanth Swaminathan ir = i_i2(i1,i2);
165*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
166*1fd5a2e1SPrashanth Swaminathan fflush(out);
167*1fd5a2e1SPrashanth Swaminathan ir = 0; clear_traces();
168*1fd5a2e1SPrashanth Swaminathan {
169*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_sint };
170*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
171*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_sint);
172*1fd5a2e1SPrashanth Swaminathan {
173*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &i2 };
174*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,i_i2,args,&retvalue);
175*1fd5a2e1SPrashanth Swaminathan ir = retvalue;
176*1fd5a2e1SPrashanth Swaminathan }
177*1fd5a2e1SPrashanth Swaminathan }
178*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
179*1fd5a2e1SPrashanth Swaminathan fflush(out);
180*1fd5a2e1SPrashanth Swaminathan #endif
181*1fd5a2e1SPrashanth Swaminathan
182*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 5
183*1fd5a2e1SPrashanth Swaminathan ir = i_i4(i1,i2,i3,i4);
184*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
185*1fd5a2e1SPrashanth Swaminathan fflush(out);
186*1fd5a2e1SPrashanth Swaminathan ir = 0; clear_traces();
187*1fd5a2e1SPrashanth Swaminathan {
188*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint };
189*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
190*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_sint);
191*1fd5a2e1SPrashanth Swaminathan {
192*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &i2, &i3, &i4 };
193*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,i_i4,args,&retvalue);
194*1fd5a2e1SPrashanth Swaminathan ir = retvalue;
195*1fd5a2e1SPrashanth Swaminathan }
196*1fd5a2e1SPrashanth Swaminathan }
197*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
198*1fd5a2e1SPrashanth Swaminathan fflush(out);
199*1fd5a2e1SPrashanth Swaminathan #endif
200*1fd5a2e1SPrashanth Swaminathan
201*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 6
202*1fd5a2e1SPrashanth Swaminathan ir = i_i8(i1,i2,i3,i4,i5,i6,i7,i8);
203*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
204*1fd5a2e1SPrashanth Swaminathan fflush(out);
205*1fd5a2e1SPrashanth Swaminathan ir = 0; clear_traces();
206*1fd5a2e1SPrashanth Swaminathan {
207*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint };
208*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
209*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_sint);
210*1fd5a2e1SPrashanth Swaminathan {
211*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8 };
212*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,i_i8,args,&retvalue);
213*1fd5a2e1SPrashanth Swaminathan ir = retvalue;
214*1fd5a2e1SPrashanth Swaminathan }
215*1fd5a2e1SPrashanth Swaminathan }
216*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
217*1fd5a2e1SPrashanth Swaminathan fflush(out);
218*1fd5a2e1SPrashanth Swaminathan #endif
219*1fd5a2e1SPrashanth Swaminathan
220*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 7
221*1fd5a2e1SPrashanth Swaminathan ir = i_i16(i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i16);
222*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
223*1fd5a2e1SPrashanth Swaminathan fflush(out);
224*1fd5a2e1SPrashanth Swaminathan ir = 0; clear_traces();
225*1fd5a2e1SPrashanth Swaminathan {
226*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_sint };
227*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
228*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_sint);
229*1fd5a2e1SPrashanth Swaminathan {
230*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8, &i9, &i10, &i11, &i12, &i13, &i14, &i15, &i16 };
231*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,i_i16,args,&retvalue);
232*1fd5a2e1SPrashanth Swaminathan ir = retvalue;
233*1fd5a2e1SPrashanth Swaminathan }
234*1fd5a2e1SPrashanth Swaminathan }
235*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%d\n",ir);
236*1fd5a2e1SPrashanth Swaminathan fflush(out);
237*1fd5a2e1SPrashanth Swaminathan #endif
238*1fd5a2e1SPrashanth Swaminathan
239*1fd5a2e1SPrashanth Swaminathan return;
240*1fd5a2e1SPrashanth Swaminathan }
241*1fd5a2e1SPrashanth Swaminathan void
float_tests(void)242*1fd5a2e1SPrashanth Swaminathan float_tests (void)
243*1fd5a2e1SPrashanth Swaminathan {
244*1fd5a2e1SPrashanth Swaminathan float fr;
245*1fd5a2e1SPrashanth Swaminathan
246*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 8
247*1fd5a2e1SPrashanth Swaminathan fr = f_f(f1);
248*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
249*1fd5a2e1SPrashanth Swaminathan fflush(out);
250*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
251*1fd5a2e1SPrashanth Swaminathan {
252*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float };
253*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
254*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
255*1fd5a2e1SPrashanth Swaminathan {
256*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1 };
257*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f,args,&fr);
258*1fd5a2e1SPrashanth Swaminathan }
259*1fd5a2e1SPrashanth Swaminathan }
260*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
261*1fd5a2e1SPrashanth Swaminathan fflush(out);
262*1fd5a2e1SPrashanth Swaminathan #endif
263*1fd5a2e1SPrashanth Swaminathan
264*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 9
265*1fd5a2e1SPrashanth Swaminathan fr = f_f2(f1,f2);
266*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
267*1fd5a2e1SPrashanth Swaminathan fflush(out);
268*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
269*1fd5a2e1SPrashanth Swaminathan {
270*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float };
271*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
272*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
273*1fd5a2e1SPrashanth Swaminathan {
274*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2 };
275*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f2,args,&fr);
276*1fd5a2e1SPrashanth Swaminathan }
277*1fd5a2e1SPrashanth Swaminathan }
278*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
279*1fd5a2e1SPrashanth Swaminathan fflush(out);
280*1fd5a2e1SPrashanth Swaminathan #endif
281*1fd5a2e1SPrashanth Swaminathan
282*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 10
283*1fd5a2e1SPrashanth Swaminathan fr = f_f4(f1,f2,f3,f4);
284*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
285*1fd5a2e1SPrashanth Swaminathan fflush(out);
286*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
287*1fd5a2e1SPrashanth Swaminathan {
288*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float };
289*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
290*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
291*1fd5a2e1SPrashanth Swaminathan {
292*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4 };
293*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f4,args,&fr);
294*1fd5a2e1SPrashanth Swaminathan }
295*1fd5a2e1SPrashanth Swaminathan }
296*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
297*1fd5a2e1SPrashanth Swaminathan fflush(out);
298*1fd5a2e1SPrashanth Swaminathan #endif
299*1fd5a2e1SPrashanth Swaminathan
300*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 11
301*1fd5a2e1SPrashanth Swaminathan fr = f_f8(f1,f2,f3,f4,f5,f6,f7,f8);
302*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
303*1fd5a2e1SPrashanth Swaminathan fflush(out);
304*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
305*1fd5a2e1SPrashanth Swaminathan {
306*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float };
307*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
308*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
309*1fd5a2e1SPrashanth Swaminathan {
310*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &f8 };
311*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f8,args,&fr);
312*1fd5a2e1SPrashanth Swaminathan }
313*1fd5a2e1SPrashanth Swaminathan }
314*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
315*1fd5a2e1SPrashanth Swaminathan fflush(out);
316*1fd5a2e1SPrashanth Swaminathan #endif
317*1fd5a2e1SPrashanth Swaminathan
318*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 12
319*1fd5a2e1SPrashanth Swaminathan fr = f_f16(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16);
320*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
321*1fd5a2e1SPrashanth Swaminathan fflush(out);
322*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
323*1fd5a2e1SPrashanth Swaminathan {
324*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float };
325*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
326*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
327*1fd5a2e1SPrashanth Swaminathan {
328*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &f8, &f9, &f10, &f11, &f12, &f13, &f14, &f15, &f16 };
329*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f16,args,&fr);
330*1fd5a2e1SPrashanth Swaminathan }
331*1fd5a2e1SPrashanth Swaminathan }
332*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
333*1fd5a2e1SPrashanth Swaminathan fflush(out);
334*1fd5a2e1SPrashanth Swaminathan #endif
335*1fd5a2e1SPrashanth Swaminathan
336*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 13
337*1fd5a2e1SPrashanth Swaminathan fr = f_f24(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24);
338*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
339*1fd5a2e1SPrashanth Swaminathan fflush(out);
340*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
341*1fd5a2e1SPrashanth Swaminathan {
342*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float };
343*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
344*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
345*1fd5a2e1SPrashanth Swaminathan {
346*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &f8, &f9, &f10, &f11, &f12, &f13, &f14, &f15, &f16, &f17, &f18, &f19, &f20, &f21, &f22, &f23, &f24 };
347*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f24,args,&fr);
348*1fd5a2e1SPrashanth Swaminathan }
349*1fd5a2e1SPrashanth Swaminathan }
350*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
351*1fd5a2e1SPrashanth Swaminathan fflush(out);
352*1fd5a2e1SPrashanth Swaminathan #endif
353*1fd5a2e1SPrashanth Swaminathan }
354*1fd5a2e1SPrashanth Swaminathan void
double_tests(void)355*1fd5a2e1SPrashanth Swaminathan double_tests (void)
356*1fd5a2e1SPrashanth Swaminathan {
357*1fd5a2e1SPrashanth Swaminathan double dr;
358*1fd5a2e1SPrashanth Swaminathan
359*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 14
360*1fd5a2e1SPrashanth Swaminathan
361*1fd5a2e1SPrashanth Swaminathan dr = d_d(d1);
362*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
363*1fd5a2e1SPrashanth Swaminathan fflush(out);
364*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
365*1fd5a2e1SPrashanth Swaminathan {
366*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double };
367*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
368*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
369*1fd5a2e1SPrashanth Swaminathan {
370*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1 };
371*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d,args,&dr);
372*1fd5a2e1SPrashanth Swaminathan }
373*1fd5a2e1SPrashanth Swaminathan }
374*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
375*1fd5a2e1SPrashanth Swaminathan fflush(out);
376*1fd5a2e1SPrashanth Swaminathan #endif
377*1fd5a2e1SPrashanth Swaminathan
378*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 15
379*1fd5a2e1SPrashanth Swaminathan dr = d_d2(d1,d2);
380*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
381*1fd5a2e1SPrashanth Swaminathan fflush(out);
382*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
383*1fd5a2e1SPrashanth Swaminathan {
384*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double };
385*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
386*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
387*1fd5a2e1SPrashanth Swaminathan {
388*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2 };
389*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d2,args,&dr);
390*1fd5a2e1SPrashanth Swaminathan }
391*1fd5a2e1SPrashanth Swaminathan }
392*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
393*1fd5a2e1SPrashanth Swaminathan fflush(out);
394*1fd5a2e1SPrashanth Swaminathan #endif
395*1fd5a2e1SPrashanth Swaminathan
396*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 16
397*1fd5a2e1SPrashanth Swaminathan dr = d_d4(d1,d2,d3,d4);
398*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
399*1fd5a2e1SPrashanth Swaminathan fflush(out);
400*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
401*1fd5a2e1SPrashanth Swaminathan {
402*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double };
403*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
404*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
405*1fd5a2e1SPrashanth Swaminathan {
406*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4 };
407*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d4,args,&dr);
408*1fd5a2e1SPrashanth Swaminathan }
409*1fd5a2e1SPrashanth Swaminathan }
410*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
411*1fd5a2e1SPrashanth Swaminathan fflush(out);
412*1fd5a2e1SPrashanth Swaminathan #endif
413*1fd5a2e1SPrashanth Swaminathan
414*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 17
415*1fd5a2e1SPrashanth Swaminathan dr = d_d8(d1,d2,d3,d4,d5,d6,d7,d8);
416*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
417*1fd5a2e1SPrashanth Swaminathan fflush(out);
418*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
419*1fd5a2e1SPrashanth Swaminathan {
420*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double };
421*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
422*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
423*1fd5a2e1SPrashanth Swaminathan {
424*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &d5, &d6, &d7, &d8 };
425*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d8,args,&dr);
426*1fd5a2e1SPrashanth Swaminathan }
427*1fd5a2e1SPrashanth Swaminathan }
428*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
429*1fd5a2e1SPrashanth Swaminathan fflush(out);
430*1fd5a2e1SPrashanth Swaminathan #endif
431*1fd5a2e1SPrashanth Swaminathan
432*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 18
433*1fd5a2e1SPrashanth Swaminathan dr = d_d16(d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16);
434*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
435*1fd5a2e1SPrashanth Swaminathan fflush(out);
436*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
437*1fd5a2e1SPrashanth Swaminathan {
438*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double };
439*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
440*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
441*1fd5a2e1SPrashanth Swaminathan {
442*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &d5, &d6, &d7, &d8, &d9, &d10, &d11, &d12, &d13, &d14, &d15, &d16 };
443*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d16,args,&dr);
444*1fd5a2e1SPrashanth Swaminathan }
445*1fd5a2e1SPrashanth Swaminathan }
446*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
447*1fd5a2e1SPrashanth Swaminathan fflush(out);
448*1fd5a2e1SPrashanth Swaminathan #endif
449*1fd5a2e1SPrashanth Swaminathan return;
450*1fd5a2e1SPrashanth Swaminathan }
451*1fd5a2e1SPrashanth Swaminathan void
pointer_tests(void)452*1fd5a2e1SPrashanth Swaminathan pointer_tests (void)
453*1fd5a2e1SPrashanth Swaminathan {
454*1fd5a2e1SPrashanth Swaminathan void* vpr;
455*1fd5a2e1SPrashanth Swaminathan
456*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 19
457*1fd5a2e1SPrashanth Swaminathan vpr = vp_vpdpcpsp(&uc1,&d2,str3,&I4);
458*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%p\n",vpr);
459*1fd5a2e1SPrashanth Swaminathan fflush(out);
460*1fd5a2e1SPrashanth Swaminathan vpr = 0; clear_traces();
461*1fd5a2e1SPrashanth Swaminathan {
462*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_pointer, &ffi_type_pointer, &ffi_type_pointer, &ffi_type_pointer };
463*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
464*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_pointer);
465*1fd5a2e1SPrashanth Swaminathan {
466*1fd5a2e1SPrashanth Swaminathan void* puc1 = &uc1;
467*1fd5a2e1SPrashanth Swaminathan void* pd2 = &d2;
468*1fd5a2e1SPrashanth Swaminathan void* pstr3 = str3;
469*1fd5a2e1SPrashanth Swaminathan void* pI4 = &I4;
470*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &puc1, &pd2, &pstr3, &pI4 };
471*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,vp_vpdpcpsp,args,&vpr);
472*1fd5a2e1SPrashanth Swaminathan }
473*1fd5a2e1SPrashanth Swaminathan }
474*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%p\n",vpr);
475*1fd5a2e1SPrashanth Swaminathan fflush(out);
476*1fd5a2e1SPrashanth Swaminathan #endif
477*1fd5a2e1SPrashanth Swaminathan return;
478*1fd5a2e1SPrashanth Swaminathan }
479*1fd5a2e1SPrashanth Swaminathan void
mixed_number_tests(void)480*1fd5a2e1SPrashanth Swaminathan mixed_number_tests (void)
481*1fd5a2e1SPrashanth Swaminathan {
482*1fd5a2e1SPrashanth Swaminathan uchar ucr;
483*1fd5a2e1SPrashanth Swaminathan ushort usr;
484*1fd5a2e1SPrashanth Swaminathan float fr;
485*1fd5a2e1SPrashanth Swaminathan double dr;
486*1fd5a2e1SPrashanth Swaminathan long long llr;
487*1fd5a2e1SPrashanth Swaminathan
488*1fd5a2e1SPrashanth Swaminathan /* Unsigned types.
489*1fd5a2e1SPrashanth Swaminathan */
490*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 20
491*1fd5a2e1SPrashanth Swaminathan ucr = uc_ucsil(uc1, us2, ui3, ul4);
492*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%u\n",ucr);
493*1fd5a2e1SPrashanth Swaminathan fflush(out);
494*1fd5a2e1SPrashanth Swaminathan ucr = 0; clear_traces();
495*1fd5a2e1SPrashanth Swaminathan {
496*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_uchar, &ffi_type_ushort, &ffi_type_uint, &ffi_type_ulong };
497*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
498*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_uchar);
499*1fd5a2e1SPrashanth Swaminathan {
500*1fd5a2e1SPrashanth Swaminathan ffi_arg r;
501*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &uc1, &us2, &ui3, &ul4 };
502*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,uc_ucsil,args,&r);
503*1fd5a2e1SPrashanth Swaminathan ucr = (uchar) r;
504*1fd5a2e1SPrashanth Swaminathan }
505*1fd5a2e1SPrashanth Swaminathan }
506*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%u\n",ucr);
507*1fd5a2e1SPrashanth Swaminathan fflush(out);
508*1fd5a2e1SPrashanth Swaminathan #endif
509*1fd5a2e1SPrashanth Swaminathan
510*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 21
511*1fd5a2e1SPrashanth Swaminathan /* Mixed int & float types.
512*1fd5a2e1SPrashanth Swaminathan */
513*1fd5a2e1SPrashanth Swaminathan dr = d_iidd(i1,i2,d3,d4);
514*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
515*1fd5a2e1SPrashanth Swaminathan fflush(out);
516*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
517*1fd5a2e1SPrashanth Swaminathan {
518*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_sint, &ffi_type_double, &ffi_type_double };
519*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
520*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
521*1fd5a2e1SPrashanth Swaminathan {
522*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &i2, &d3, &d4 };
523*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_iidd,args,&dr);
524*1fd5a2e1SPrashanth Swaminathan }
525*1fd5a2e1SPrashanth Swaminathan }
526*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
527*1fd5a2e1SPrashanth Swaminathan fflush(out);
528*1fd5a2e1SPrashanth Swaminathan #endif
529*1fd5a2e1SPrashanth Swaminathan
530*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 22
531*1fd5a2e1SPrashanth Swaminathan dr = d_iiidi(i1,i2,i3,d4,i5);
532*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
533*1fd5a2e1SPrashanth Swaminathan fflush(out);
534*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
535*1fd5a2e1SPrashanth Swaminathan {
536*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_double, &ffi_type_sint };
537*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
538*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
539*1fd5a2e1SPrashanth Swaminathan {
540*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &i2, &i3, &d4, &i5 };
541*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_iiidi,args,&dr);
542*1fd5a2e1SPrashanth Swaminathan }
543*1fd5a2e1SPrashanth Swaminathan }
544*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
545*1fd5a2e1SPrashanth Swaminathan fflush(out);
546*1fd5a2e1SPrashanth Swaminathan #endif
547*1fd5a2e1SPrashanth Swaminathan
548*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 23
549*1fd5a2e1SPrashanth Swaminathan dr = d_idid(i1,d2,i3,d4);
550*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
551*1fd5a2e1SPrashanth Swaminathan fflush(out);
552*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
553*1fd5a2e1SPrashanth Swaminathan {
554*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_double, &ffi_type_sint, &ffi_type_double };
555*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
556*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
557*1fd5a2e1SPrashanth Swaminathan {
558*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &d2, &i3, &d4 };
559*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_idid,args,&dr);
560*1fd5a2e1SPrashanth Swaminathan }
561*1fd5a2e1SPrashanth Swaminathan }
562*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
563*1fd5a2e1SPrashanth Swaminathan fflush(out);
564*1fd5a2e1SPrashanth Swaminathan #endif
565*1fd5a2e1SPrashanth Swaminathan
566*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 24
567*1fd5a2e1SPrashanth Swaminathan dr = d_fdi(f1,d2,i3);
568*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
569*1fd5a2e1SPrashanth Swaminathan fflush(out);
570*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
571*1fd5a2e1SPrashanth Swaminathan {
572*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_double, &ffi_type_sint };
573*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
574*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
575*1fd5a2e1SPrashanth Swaminathan {
576*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &d2, &i3 };
577*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_fdi,args,&dr);
578*1fd5a2e1SPrashanth Swaminathan }
579*1fd5a2e1SPrashanth Swaminathan }
580*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
581*1fd5a2e1SPrashanth Swaminathan fflush(out);
582*1fd5a2e1SPrashanth Swaminathan #endif
583*1fd5a2e1SPrashanth Swaminathan
584*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 25
585*1fd5a2e1SPrashanth Swaminathan usr = us_cdcd(c1,d2,c3,d4);
586*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%u\n",usr);
587*1fd5a2e1SPrashanth Swaminathan fflush(out);
588*1fd5a2e1SPrashanth Swaminathan usr = 0; clear_traces();
589*1fd5a2e1SPrashanth Swaminathan {
590*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_char, &ffi_type_double, &ffi_type_char, &ffi_type_double };
591*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
592*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_ushort);
593*1fd5a2e1SPrashanth Swaminathan {
594*1fd5a2e1SPrashanth Swaminathan ffi_arg rint;
595*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &c1, &d2, &c3, &d4 };
596*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,us_cdcd,args,&rint);
597*1fd5a2e1SPrashanth Swaminathan usr = (ushort) rint;
598*1fd5a2e1SPrashanth Swaminathan }
599*1fd5a2e1SPrashanth Swaminathan }
600*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%u\n",usr);
601*1fd5a2e1SPrashanth Swaminathan fflush(out);
602*1fd5a2e1SPrashanth Swaminathan #endif
603*1fd5a2e1SPrashanth Swaminathan
604*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 26
605*1fd5a2e1SPrashanth Swaminathan /* Long long types.
606*1fd5a2e1SPrashanth Swaminathan */
607*1fd5a2e1SPrashanth Swaminathan llr = ll_iiilli(i1,i2,i3,ll1,i13);
608*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
609*1fd5a2e1SPrashanth Swaminathan fflush(out);
610*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
611*1fd5a2e1SPrashanth Swaminathan {
612*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_sint, &ffi_type_sint, &ffi_type_sint, &ffi_type_slonglong, &ffi_type_sint };
613*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
614*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
615*1fd5a2e1SPrashanth Swaminathan {
616*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &i1, &i2, &i3, &ll1, &i13 };
617*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_iiilli,args,&llr);
618*1fd5a2e1SPrashanth Swaminathan }
619*1fd5a2e1SPrashanth Swaminathan }
620*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
621*1fd5a2e1SPrashanth Swaminathan fflush(out);
622*1fd5a2e1SPrashanth Swaminathan #endif
623*1fd5a2e1SPrashanth Swaminathan
624*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 27
625*1fd5a2e1SPrashanth Swaminathan llr = ll_flli(f13,ll1,i13);
626*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
627*1fd5a2e1SPrashanth Swaminathan fflush(out);
628*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
629*1fd5a2e1SPrashanth Swaminathan {
630*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_slonglong, &ffi_type_sint };
631*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
632*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
633*1fd5a2e1SPrashanth Swaminathan {
634*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f13, &ll1, &i13 };
635*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_flli,args,&llr);
636*1fd5a2e1SPrashanth Swaminathan }
637*1fd5a2e1SPrashanth Swaminathan }
638*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
639*1fd5a2e1SPrashanth Swaminathan fflush(out);
640*1fd5a2e1SPrashanth Swaminathan #endif
641*1fd5a2e1SPrashanth Swaminathan
642*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 28
643*1fd5a2e1SPrashanth Swaminathan fr = f_fi(f1,i9);
644*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
645*1fd5a2e1SPrashanth Swaminathan fflush(out);
646*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
647*1fd5a2e1SPrashanth Swaminathan {
648*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_sint };
649*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
650*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
651*1fd5a2e1SPrashanth Swaminathan {
652*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &i9 };
653*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_fi,args,&fr);
654*1fd5a2e1SPrashanth Swaminathan }
655*1fd5a2e1SPrashanth Swaminathan }
656*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
657*1fd5a2e1SPrashanth Swaminathan fflush(out);
658*1fd5a2e1SPrashanth Swaminathan #endif
659*1fd5a2e1SPrashanth Swaminathan
660*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 29
661*1fd5a2e1SPrashanth Swaminathan fr = f_f2i(f1,f2,i9);
662*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
663*1fd5a2e1SPrashanth Swaminathan fflush(out);
664*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
665*1fd5a2e1SPrashanth Swaminathan {
666*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_sint };
667*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
668*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
669*1fd5a2e1SPrashanth Swaminathan {
670*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &i9 };
671*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f2i,args,&fr);
672*1fd5a2e1SPrashanth Swaminathan }
673*1fd5a2e1SPrashanth Swaminathan }
674*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
675*1fd5a2e1SPrashanth Swaminathan fflush(out);
676*1fd5a2e1SPrashanth Swaminathan #endif
677*1fd5a2e1SPrashanth Swaminathan
678*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 30
679*1fd5a2e1SPrashanth Swaminathan fr = f_f3i(f1,f2,f3,i9);
680*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
681*1fd5a2e1SPrashanth Swaminathan fflush(out);
682*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
683*1fd5a2e1SPrashanth Swaminathan {
684*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_sint };
685*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
686*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
687*1fd5a2e1SPrashanth Swaminathan {
688*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &i9 };
689*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f3i,args,&fr);
690*1fd5a2e1SPrashanth Swaminathan }
691*1fd5a2e1SPrashanth Swaminathan }
692*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
693*1fd5a2e1SPrashanth Swaminathan fflush(out);
694*1fd5a2e1SPrashanth Swaminathan #endif
695*1fd5a2e1SPrashanth Swaminathan
696*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 31
697*1fd5a2e1SPrashanth Swaminathan fr = f_f4i(f1,f2,f3,f4,i9);
698*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
699*1fd5a2e1SPrashanth Swaminathan fflush(out);
700*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
701*1fd5a2e1SPrashanth Swaminathan {
702*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_sint };
703*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
704*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
705*1fd5a2e1SPrashanth Swaminathan {
706*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &i9 };
707*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f4i,args,&fr);
708*1fd5a2e1SPrashanth Swaminathan }
709*1fd5a2e1SPrashanth Swaminathan }
710*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
711*1fd5a2e1SPrashanth Swaminathan fflush(out);
712*1fd5a2e1SPrashanth Swaminathan #endif
713*1fd5a2e1SPrashanth Swaminathan
714*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 32
715*1fd5a2e1SPrashanth Swaminathan fr = f_f7i(f1,f2,f3,f4,f5,f6,f7,i9);
716*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
717*1fd5a2e1SPrashanth Swaminathan fflush(out);
718*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
719*1fd5a2e1SPrashanth Swaminathan {
720*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_sint };
721*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
722*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
723*1fd5a2e1SPrashanth Swaminathan {
724*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &i9 };
725*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f7i,args,&fr);
726*1fd5a2e1SPrashanth Swaminathan }
727*1fd5a2e1SPrashanth Swaminathan }
728*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
729*1fd5a2e1SPrashanth Swaminathan fflush(out);
730*1fd5a2e1SPrashanth Swaminathan #endif
731*1fd5a2e1SPrashanth Swaminathan
732*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 33
733*1fd5a2e1SPrashanth Swaminathan fr = f_f8i(f1,f2,f3,f4,f5,f6,f7,f8,i9);
734*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
735*1fd5a2e1SPrashanth Swaminathan fflush(out);
736*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
737*1fd5a2e1SPrashanth Swaminathan {
738*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_sint };
739*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
740*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
741*1fd5a2e1SPrashanth Swaminathan {
742*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &f8, &i9 };
743*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f8i,args,&fr);
744*1fd5a2e1SPrashanth Swaminathan }
745*1fd5a2e1SPrashanth Swaminathan }
746*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
747*1fd5a2e1SPrashanth Swaminathan fflush(out);
748*1fd5a2e1SPrashanth Swaminathan #endif
749*1fd5a2e1SPrashanth Swaminathan
750*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 34
751*1fd5a2e1SPrashanth Swaminathan fr = f_f12i(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,i9);
752*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
753*1fd5a2e1SPrashanth Swaminathan fflush(out);
754*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
755*1fd5a2e1SPrashanth Swaminathan {
756*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_sint };
757*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
758*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
759*1fd5a2e1SPrashanth Swaminathan {
760*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &f8, &f9, &f10, &f11, &f12, &i9 };
761*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f12i,args,&fr);
762*1fd5a2e1SPrashanth Swaminathan }
763*1fd5a2e1SPrashanth Swaminathan }
764*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
765*1fd5a2e1SPrashanth Swaminathan fflush(out);
766*1fd5a2e1SPrashanth Swaminathan #endif
767*1fd5a2e1SPrashanth Swaminathan
768*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 35
769*1fd5a2e1SPrashanth Swaminathan fr = f_f13i(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,i9);
770*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
771*1fd5a2e1SPrashanth Swaminathan fflush(out);
772*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
773*1fd5a2e1SPrashanth Swaminathan {
774*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_sint };
775*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
776*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
777*1fd5a2e1SPrashanth Swaminathan {
778*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &f8, &f9, &f10, &f11, &f12, &f13, &i9 };
779*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f13i,args,&fr);
780*1fd5a2e1SPrashanth Swaminathan }
781*1fd5a2e1SPrashanth Swaminathan }
782*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
783*1fd5a2e1SPrashanth Swaminathan fflush(out);
784*1fd5a2e1SPrashanth Swaminathan #endif
785*1fd5a2e1SPrashanth Swaminathan
786*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 36
787*1fd5a2e1SPrashanth Swaminathan dr = d_di(d1,i9);
788*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
789*1fd5a2e1SPrashanth Swaminathan fflush(out);
790*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
791*1fd5a2e1SPrashanth Swaminathan {
792*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_sint };
793*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
794*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
795*1fd5a2e1SPrashanth Swaminathan {
796*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &i9 };
797*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_di,args,&dr);
798*1fd5a2e1SPrashanth Swaminathan }
799*1fd5a2e1SPrashanth Swaminathan }
800*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
801*1fd5a2e1SPrashanth Swaminathan fflush(out);
802*1fd5a2e1SPrashanth Swaminathan #endif
803*1fd5a2e1SPrashanth Swaminathan
804*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 37
805*1fd5a2e1SPrashanth Swaminathan dr = d_d2i(d1,d2,i9);
806*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
807*1fd5a2e1SPrashanth Swaminathan fflush(out);
808*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
809*1fd5a2e1SPrashanth Swaminathan {
810*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_sint };
811*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
812*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
813*1fd5a2e1SPrashanth Swaminathan {
814*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &i9 };
815*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d2i,args,&dr);
816*1fd5a2e1SPrashanth Swaminathan }
817*1fd5a2e1SPrashanth Swaminathan }
818*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
819*1fd5a2e1SPrashanth Swaminathan fflush(out);
820*1fd5a2e1SPrashanth Swaminathan #endif
821*1fd5a2e1SPrashanth Swaminathan
822*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 38
823*1fd5a2e1SPrashanth Swaminathan dr = d_d3i(d1,d2,d3,i9);
824*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
825*1fd5a2e1SPrashanth Swaminathan fflush(out);
826*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
827*1fd5a2e1SPrashanth Swaminathan {
828*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_sint };
829*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
830*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
831*1fd5a2e1SPrashanth Swaminathan {
832*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &i9 };
833*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d3i,args,&dr);
834*1fd5a2e1SPrashanth Swaminathan }
835*1fd5a2e1SPrashanth Swaminathan }
836*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
837*1fd5a2e1SPrashanth Swaminathan fflush(out);
838*1fd5a2e1SPrashanth Swaminathan #endif
839*1fd5a2e1SPrashanth Swaminathan
840*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 39
841*1fd5a2e1SPrashanth Swaminathan dr = d_d4i(d1,d2,d3,d4,i9);
842*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
843*1fd5a2e1SPrashanth Swaminathan fflush(out);
844*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
845*1fd5a2e1SPrashanth Swaminathan {
846*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_sint };
847*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
848*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
849*1fd5a2e1SPrashanth Swaminathan {
850*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &i9 };
851*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d4i,args,&dr);
852*1fd5a2e1SPrashanth Swaminathan }
853*1fd5a2e1SPrashanth Swaminathan }
854*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
855*1fd5a2e1SPrashanth Swaminathan fflush(out);
856*1fd5a2e1SPrashanth Swaminathan #endif
857*1fd5a2e1SPrashanth Swaminathan
858*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 40
859*1fd5a2e1SPrashanth Swaminathan dr = d_d7i(d1,d2,d3,d4,d5,d6,d7,i9);
860*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
861*1fd5a2e1SPrashanth Swaminathan fflush(out);
862*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
863*1fd5a2e1SPrashanth Swaminathan {
864*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_sint };
865*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
866*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
867*1fd5a2e1SPrashanth Swaminathan {
868*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &d5, &d6, &d7, &i9 };
869*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d7i,args,&dr);
870*1fd5a2e1SPrashanth Swaminathan }
871*1fd5a2e1SPrashanth Swaminathan }
872*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
873*1fd5a2e1SPrashanth Swaminathan fflush(out);
874*1fd5a2e1SPrashanth Swaminathan #endif
875*1fd5a2e1SPrashanth Swaminathan
876*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 41
877*1fd5a2e1SPrashanth Swaminathan dr = d_d8i(d1,d2,d3,d4,d5,d6,d7,d8,i9);
878*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
879*1fd5a2e1SPrashanth Swaminathan fflush(out);
880*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
881*1fd5a2e1SPrashanth Swaminathan {
882*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_sint };
883*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
884*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
885*1fd5a2e1SPrashanth Swaminathan {
886*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &d5, &d6, &d7, &d8, &i9 };
887*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d8i,args,&dr);
888*1fd5a2e1SPrashanth Swaminathan }
889*1fd5a2e1SPrashanth Swaminathan }
890*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
891*1fd5a2e1SPrashanth Swaminathan fflush(out);
892*1fd5a2e1SPrashanth Swaminathan #endif
893*1fd5a2e1SPrashanth Swaminathan
894*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 42
895*1fd5a2e1SPrashanth Swaminathan dr = d_d12i(d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,i9);
896*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
897*1fd5a2e1SPrashanth Swaminathan fflush(out);
898*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
899*1fd5a2e1SPrashanth Swaminathan {
900*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_sint };
901*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
902*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
903*1fd5a2e1SPrashanth Swaminathan {
904*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &d5, &d6, &d7, &d8, &d9, &d10, &d11, &d12, &i9 };
905*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d12i,args,&dr);
906*1fd5a2e1SPrashanth Swaminathan }
907*1fd5a2e1SPrashanth Swaminathan }
908*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
909*1fd5a2e1SPrashanth Swaminathan fflush(out);
910*1fd5a2e1SPrashanth Swaminathan #endif
911*1fd5a2e1SPrashanth Swaminathan
912*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 43
913*1fd5a2e1SPrashanth Swaminathan dr = d_d13i(d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,i9);
914*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
915*1fd5a2e1SPrashanth Swaminathan fflush(out);
916*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
917*1fd5a2e1SPrashanth Swaminathan {
918*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_sint };
919*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
920*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
921*1fd5a2e1SPrashanth Swaminathan {
922*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &d5, &d6, &d7, &d8, &d9, &d10, &d11, &d12, &d13, &i9 };
923*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d13i,args,&dr);
924*1fd5a2e1SPrashanth Swaminathan }
925*1fd5a2e1SPrashanth Swaminathan }
926*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
927*1fd5a2e1SPrashanth Swaminathan fflush(out);
928*1fd5a2e1SPrashanth Swaminathan #endif
929*1fd5a2e1SPrashanth Swaminathan return;
930*1fd5a2e1SPrashanth Swaminathan }
931*1fd5a2e1SPrashanth Swaminathan void
small_structure_return_tests(void)932*1fd5a2e1SPrashanth Swaminathan small_structure_return_tests (void)
933*1fd5a2e1SPrashanth Swaminathan {
934*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 44
935*1fd5a2e1SPrashanth Swaminathan {
936*1fd5a2e1SPrashanth Swaminathan Size1 r = S1_v();
937*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c}\n",r.x1);
938*1fd5a2e1SPrashanth Swaminathan fflush(out);
939*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
940*1fd5a2e1SPrashanth Swaminathan {
941*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size1_elements[] = { &ffi_type_char, NULL };
942*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size1;
943*1fd5a2e1SPrashanth Swaminathan ffi_type_Size1.type = FFI_TYPE_STRUCT;
944*1fd5a2e1SPrashanth Swaminathan ffi_type_Size1.size = sizeof(Size1);
945*1fd5a2e1SPrashanth Swaminathan ffi_type_Size1.alignment = alignof_slot(Size1);
946*1fd5a2e1SPrashanth Swaminathan ffi_type_Size1.elements = ffi_type_Size1_elements;
947*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
948*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size1);
949*1fd5a2e1SPrashanth Swaminathan {
950*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S1_v,NULL,&r);
951*1fd5a2e1SPrashanth Swaminathan }
952*1fd5a2e1SPrashanth Swaminathan }
953*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c}\n",r.x1);
954*1fd5a2e1SPrashanth Swaminathan fflush(out);
955*1fd5a2e1SPrashanth Swaminathan }
956*1fd5a2e1SPrashanth Swaminathan #endif
957*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 45
958*1fd5a2e1SPrashanth Swaminathan {
959*1fd5a2e1SPrashanth Swaminathan Size2 r = S2_v();
960*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c}\n",r.x1,r.x2);
961*1fd5a2e1SPrashanth Swaminathan fflush(out);
962*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
963*1fd5a2e1SPrashanth Swaminathan {
964*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size2_elements[] = { &ffi_type_char, &ffi_type_char, NULL };
965*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size2;
966*1fd5a2e1SPrashanth Swaminathan ffi_type_Size2.type = FFI_TYPE_STRUCT;
967*1fd5a2e1SPrashanth Swaminathan ffi_type_Size2.size = sizeof(Size2);
968*1fd5a2e1SPrashanth Swaminathan ffi_type_Size2.alignment = alignof_slot(Size2);
969*1fd5a2e1SPrashanth Swaminathan ffi_type_Size2.elements = ffi_type_Size2_elements;
970*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
971*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size2);
972*1fd5a2e1SPrashanth Swaminathan {
973*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S2_v,NULL,&r);
974*1fd5a2e1SPrashanth Swaminathan }
975*1fd5a2e1SPrashanth Swaminathan }
976*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c}\n",r.x1,r.x2);
977*1fd5a2e1SPrashanth Swaminathan fflush(out);
978*1fd5a2e1SPrashanth Swaminathan }
979*1fd5a2e1SPrashanth Swaminathan #endif
980*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 46
981*1fd5a2e1SPrashanth Swaminathan {
982*1fd5a2e1SPrashanth Swaminathan Size3 r = S3_v();
983*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c}\n",r.x1,r.x2,r.x3);
984*1fd5a2e1SPrashanth Swaminathan fflush(out);
985*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
986*1fd5a2e1SPrashanth Swaminathan {
987*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size3_elements[] = { &ffi_type_char, &ffi_type_char, &ffi_type_char, NULL };
988*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size3;
989*1fd5a2e1SPrashanth Swaminathan ffi_type_Size3.type = FFI_TYPE_STRUCT;
990*1fd5a2e1SPrashanth Swaminathan ffi_type_Size3.size = sizeof(Size3);
991*1fd5a2e1SPrashanth Swaminathan ffi_type_Size3.alignment = alignof_slot(Size3);
992*1fd5a2e1SPrashanth Swaminathan ffi_type_Size3.elements = ffi_type_Size3_elements;
993*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
994*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size3);
995*1fd5a2e1SPrashanth Swaminathan {
996*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S3_v,NULL,&r);
997*1fd5a2e1SPrashanth Swaminathan }
998*1fd5a2e1SPrashanth Swaminathan }
999*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c}\n",r.x1,r.x2,r.x3);
1000*1fd5a2e1SPrashanth Swaminathan fflush(out);
1001*1fd5a2e1SPrashanth Swaminathan }
1002*1fd5a2e1SPrashanth Swaminathan #endif
1003*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 47
1004*1fd5a2e1SPrashanth Swaminathan {
1005*1fd5a2e1SPrashanth Swaminathan Size4 r = S4_v();
1006*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4);
1007*1fd5a2e1SPrashanth Swaminathan fflush(out);
1008*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
1009*1fd5a2e1SPrashanth Swaminathan {
1010*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size4_elements[] = { &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, NULL };
1011*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size4;
1012*1fd5a2e1SPrashanth Swaminathan ffi_type_Size4.type = FFI_TYPE_STRUCT;
1013*1fd5a2e1SPrashanth Swaminathan ffi_type_Size4.size = sizeof(Size4);
1014*1fd5a2e1SPrashanth Swaminathan ffi_type_Size4.alignment = alignof_slot(Size4);
1015*1fd5a2e1SPrashanth Swaminathan ffi_type_Size4.elements = ffi_type_Size4_elements;
1016*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1017*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size4);
1018*1fd5a2e1SPrashanth Swaminathan {
1019*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S4_v,NULL,&r);
1020*1fd5a2e1SPrashanth Swaminathan }
1021*1fd5a2e1SPrashanth Swaminathan }
1022*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4);
1023*1fd5a2e1SPrashanth Swaminathan fflush(out);
1024*1fd5a2e1SPrashanth Swaminathan }
1025*1fd5a2e1SPrashanth Swaminathan #endif
1026*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 48
1027*1fd5a2e1SPrashanth Swaminathan {
1028*1fd5a2e1SPrashanth Swaminathan Size7 r = S7_v();
1029*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7);
1030*1fd5a2e1SPrashanth Swaminathan fflush(out);
1031*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
1032*1fd5a2e1SPrashanth Swaminathan {
1033*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size7_elements[] = { &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, NULL };
1034*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size7;
1035*1fd5a2e1SPrashanth Swaminathan ffi_type_Size7.type = FFI_TYPE_STRUCT;
1036*1fd5a2e1SPrashanth Swaminathan ffi_type_Size7.size = sizeof(Size7);
1037*1fd5a2e1SPrashanth Swaminathan ffi_type_Size7.alignment = alignof_slot(Size7);
1038*1fd5a2e1SPrashanth Swaminathan ffi_type_Size7.elements = ffi_type_Size7_elements;
1039*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1040*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size7);
1041*1fd5a2e1SPrashanth Swaminathan {
1042*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S7_v,NULL,&r);
1043*1fd5a2e1SPrashanth Swaminathan }
1044*1fd5a2e1SPrashanth Swaminathan }
1045*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7);
1046*1fd5a2e1SPrashanth Swaminathan fflush(out);
1047*1fd5a2e1SPrashanth Swaminathan }
1048*1fd5a2e1SPrashanth Swaminathan #endif
1049*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 49
1050*1fd5a2e1SPrashanth Swaminathan {
1051*1fd5a2e1SPrashanth Swaminathan Size8 r = S8_v();
1052*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8);
1053*1fd5a2e1SPrashanth Swaminathan fflush(out);
1054*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
1055*1fd5a2e1SPrashanth Swaminathan {
1056*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size8_elements[] = { &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, NULL };
1057*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size8;
1058*1fd5a2e1SPrashanth Swaminathan ffi_type_Size8.type = FFI_TYPE_STRUCT;
1059*1fd5a2e1SPrashanth Swaminathan ffi_type_Size8.size = sizeof(Size8);
1060*1fd5a2e1SPrashanth Swaminathan ffi_type_Size8.alignment = alignof_slot(Size8);
1061*1fd5a2e1SPrashanth Swaminathan ffi_type_Size8.elements = ffi_type_Size8_elements;
1062*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1063*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size8);
1064*1fd5a2e1SPrashanth Swaminathan {
1065*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S8_v,NULL,&r);
1066*1fd5a2e1SPrashanth Swaminathan }
1067*1fd5a2e1SPrashanth Swaminathan }
1068*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8);
1069*1fd5a2e1SPrashanth Swaminathan fflush(out);
1070*1fd5a2e1SPrashanth Swaminathan }
1071*1fd5a2e1SPrashanth Swaminathan #endif
1072*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 50
1073*1fd5a2e1SPrashanth Swaminathan {
1074*1fd5a2e1SPrashanth Swaminathan Size12 r = S12_v();
1075*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8,r.x9,r.x10,r.x11,r.x12);
1076*1fd5a2e1SPrashanth Swaminathan fflush(out);
1077*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
1078*1fd5a2e1SPrashanth Swaminathan {
1079*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size12_elements[] = { &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, NULL };
1080*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size12;
1081*1fd5a2e1SPrashanth Swaminathan ffi_type_Size12.type = FFI_TYPE_STRUCT;
1082*1fd5a2e1SPrashanth Swaminathan ffi_type_Size12.size = sizeof(Size12);
1083*1fd5a2e1SPrashanth Swaminathan ffi_type_Size12.alignment = alignof_slot(Size12);
1084*1fd5a2e1SPrashanth Swaminathan ffi_type_Size12.elements = ffi_type_Size12_elements;
1085*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1086*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size12);
1087*1fd5a2e1SPrashanth Swaminathan {
1088*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S12_v,NULL,&r);
1089*1fd5a2e1SPrashanth Swaminathan }
1090*1fd5a2e1SPrashanth Swaminathan }
1091*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8,r.x9,r.x10,r.x11,r.x12);
1092*1fd5a2e1SPrashanth Swaminathan fflush(out);
1093*1fd5a2e1SPrashanth Swaminathan }
1094*1fd5a2e1SPrashanth Swaminathan #endif
1095*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 51
1096*1fd5a2e1SPrashanth Swaminathan {
1097*1fd5a2e1SPrashanth Swaminathan Size15 r = S15_v();
1098*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8,r.x9,r.x10,r.x11,r.x12,r.x13,r.x14,r.x15);
1099*1fd5a2e1SPrashanth Swaminathan fflush(out);
1100*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
1101*1fd5a2e1SPrashanth Swaminathan {
1102*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size15_elements[] = { &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, NULL };
1103*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size15;
1104*1fd5a2e1SPrashanth Swaminathan ffi_type_Size15.type = FFI_TYPE_STRUCT;
1105*1fd5a2e1SPrashanth Swaminathan ffi_type_Size15.size = sizeof(Size15);
1106*1fd5a2e1SPrashanth Swaminathan ffi_type_Size15.alignment = alignof_slot(Size15);
1107*1fd5a2e1SPrashanth Swaminathan ffi_type_Size15.elements = ffi_type_Size15_elements;
1108*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1109*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size15);
1110*1fd5a2e1SPrashanth Swaminathan {
1111*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S15_v,NULL,&r);
1112*1fd5a2e1SPrashanth Swaminathan }
1113*1fd5a2e1SPrashanth Swaminathan }
1114*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8,r.x9,r.x10,r.x11,r.x12,r.x13,r.x14,r.x15);
1115*1fd5a2e1SPrashanth Swaminathan fflush(out);
1116*1fd5a2e1SPrashanth Swaminathan }
1117*1fd5a2e1SPrashanth Swaminathan #endif
1118*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 52
1119*1fd5a2e1SPrashanth Swaminathan {
1120*1fd5a2e1SPrashanth Swaminathan Size16 r = S16_v();
1121*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8,r.x9,r.x10,r.x11,r.x12,r.x13,r.x14,r.x15,r.x16);
1122*1fd5a2e1SPrashanth Swaminathan fflush(out);
1123*1fd5a2e1SPrashanth Swaminathan memset(&r,0,sizeof(r)); clear_traces();
1124*1fd5a2e1SPrashanth Swaminathan {
1125*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Size16_elements[] = { &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, &ffi_type_char, NULL };
1126*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Size16;
1127*1fd5a2e1SPrashanth Swaminathan ffi_type_Size16.type = FFI_TYPE_STRUCT;
1128*1fd5a2e1SPrashanth Swaminathan ffi_type_Size16.size = sizeof(Size16);
1129*1fd5a2e1SPrashanth Swaminathan ffi_type_Size16.alignment = alignof_slot(Size16);
1130*1fd5a2e1SPrashanth Swaminathan ffi_type_Size16.elements = ffi_type_Size16_elements;
1131*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1132*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF_NOARGS(cif,ffi_type_Size16);
1133*1fd5a2e1SPrashanth Swaminathan {
1134*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,S16_v,NULL,&r);
1135*1fd5a2e1SPrashanth Swaminathan }
1136*1fd5a2e1SPrashanth Swaminathan }
1137*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c}\n",r.x1,r.x2,r.x3,r.x4,r.x5,r.x6,r.x7,r.x8,r.x9,r.x10,r.x11,r.x12,r.x13,r.x14,r.x15,r.x16);
1138*1fd5a2e1SPrashanth Swaminathan fflush(out);
1139*1fd5a2e1SPrashanth Swaminathan }
1140*1fd5a2e1SPrashanth Swaminathan #endif
1141*1fd5a2e1SPrashanth Swaminathan }
1142*1fd5a2e1SPrashanth Swaminathan void
structure_tests(void)1143*1fd5a2e1SPrashanth Swaminathan structure_tests (void)
1144*1fd5a2e1SPrashanth Swaminathan {
1145*1fd5a2e1SPrashanth Swaminathan Int Ir;
1146*1fd5a2e1SPrashanth Swaminathan Char Cr;
1147*1fd5a2e1SPrashanth Swaminathan Float Fr;
1148*1fd5a2e1SPrashanth Swaminathan Double Dr;
1149*1fd5a2e1SPrashanth Swaminathan J Jr;
1150*1fd5a2e1SPrashanth Swaminathan #ifndef SKIP_EXTRA_STRUCTS
1151*1fd5a2e1SPrashanth Swaminathan T Tr;
1152*1fd5a2e1SPrashanth Swaminathan X Xr;
1153*1fd5a2e1SPrashanth Swaminathan #endif
1154*1fd5a2e1SPrashanth Swaminathan
1155*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 53
1156*1fd5a2e1SPrashanth Swaminathan Ir = I_III(I1,I2,I3);
1157*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%d}\n",Ir.x);
1158*1fd5a2e1SPrashanth Swaminathan fflush(out);
1159*1fd5a2e1SPrashanth Swaminathan Ir.x = 0; clear_traces();
1160*1fd5a2e1SPrashanth Swaminathan {
1161*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Int_elements[] = { &ffi_type_sint, NULL };
1162*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Int;
1163*1fd5a2e1SPrashanth Swaminathan ffi_type_Int.type = FFI_TYPE_STRUCT;
1164*1fd5a2e1SPrashanth Swaminathan ffi_type_Int.size = sizeof(Int);
1165*1fd5a2e1SPrashanth Swaminathan ffi_type_Int.alignment = alignof_slot(Int);
1166*1fd5a2e1SPrashanth Swaminathan ffi_type_Int.elements = ffi_type_Int_elements;
1167*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_Int, &ffi_type_Int, &ffi_type_Int };
1168*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1169*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_Int);
1170*1fd5a2e1SPrashanth Swaminathan {
1171*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &I1, &I2, &I3 };
1172*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,I_III,args,&Ir);
1173*1fd5a2e1SPrashanth Swaminathan }
1174*1fd5a2e1SPrashanth Swaminathan }
1175*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%d}\n",Ir.x);
1176*1fd5a2e1SPrashanth Swaminathan fflush(out);
1177*1fd5a2e1SPrashanth Swaminathan #endif
1178*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 54
1179*1fd5a2e1SPrashanth Swaminathan Cr = C_CdC(C1,d2,C3);
1180*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{'%c'}\n",Cr.x);
1181*1fd5a2e1SPrashanth Swaminathan fflush(out);
1182*1fd5a2e1SPrashanth Swaminathan Cr.x = '\0'; clear_traces();
1183*1fd5a2e1SPrashanth Swaminathan {
1184*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Char_elements[] = { &ffi_type_char, NULL };
1185*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Char;
1186*1fd5a2e1SPrashanth Swaminathan ffi_type_Char.type = FFI_TYPE_STRUCT;
1187*1fd5a2e1SPrashanth Swaminathan ffi_type_Char.size = sizeof(Char);
1188*1fd5a2e1SPrashanth Swaminathan ffi_type_Char.alignment = alignof_slot(Char);
1189*1fd5a2e1SPrashanth Swaminathan ffi_type_Char.elements = ffi_type_Char_elements;
1190*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_Char, &ffi_type_double, &ffi_type_Char };
1191*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1192*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_Char);
1193*1fd5a2e1SPrashanth Swaminathan {
1194*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &C1, &d2, &C3 };
1195*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,C_CdC,args,&Cr);
1196*1fd5a2e1SPrashanth Swaminathan }
1197*1fd5a2e1SPrashanth Swaminathan }
1198*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{'%c'}\n",Cr.x);
1199*1fd5a2e1SPrashanth Swaminathan fflush(out);
1200*1fd5a2e1SPrashanth Swaminathan #endif
1201*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 55
1202*1fd5a2e1SPrashanth Swaminathan Fr = F_Ffd(F1,f2,d3);
1203*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%g}\n",Fr.x);
1204*1fd5a2e1SPrashanth Swaminathan fflush(out);
1205*1fd5a2e1SPrashanth Swaminathan Fr.x = 0.0; clear_traces();
1206*1fd5a2e1SPrashanth Swaminathan {
1207*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Float_elements[] = { &ffi_type_float, NULL };
1208*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Float;
1209*1fd5a2e1SPrashanth Swaminathan ffi_type_Float.type = FFI_TYPE_STRUCT;
1210*1fd5a2e1SPrashanth Swaminathan ffi_type_Float.size = sizeof(Float);
1211*1fd5a2e1SPrashanth Swaminathan ffi_type_Float.alignment = alignof_slot(Float);
1212*1fd5a2e1SPrashanth Swaminathan ffi_type_Float.elements = ffi_type_Float_elements;
1213*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_Float, &ffi_type_float, &ffi_type_double };
1214*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1215*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_Float);
1216*1fd5a2e1SPrashanth Swaminathan {
1217*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &F1, &f2, &d3 };
1218*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,F_Ffd,args,&Fr);
1219*1fd5a2e1SPrashanth Swaminathan }
1220*1fd5a2e1SPrashanth Swaminathan }
1221*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%g}\n",Fr.x);
1222*1fd5a2e1SPrashanth Swaminathan fflush(out);
1223*1fd5a2e1SPrashanth Swaminathan #endif
1224*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 56
1225*1fd5a2e1SPrashanth Swaminathan Dr = D_fDd(f1,D2,d3);
1226*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%g}\n",Dr.x);
1227*1fd5a2e1SPrashanth Swaminathan fflush(out);
1228*1fd5a2e1SPrashanth Swaminathan Dr.x = 0.0; clear_traces();
1229*1fd5a2e1SPrashanth Swaminathan {
1230*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Double_elements[] = { &ffi_type_double, NULL };
1231*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Double;
1232*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.type = FFI_TYPE_STRUCT;
1233*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.size = sizeof(Double);
1234*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.alignment = alignof_slot(Double);
1235*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.elements = ffi_type_Double_elements;
1236*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_Double, &ffi_type_double };
1237*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1238*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_Double);
1239*1fd5a2e1SPrashanth Swaminathan {
1240*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &D2, &d3 };
1241*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,D_fDd,args,&Dr);
1242*1fd5a2e1SPrashanth Swaminathan }
1243*1fd5a2e1SPrashanth Swaminathan }
1244*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%g}\n",Dr.x);
1245*1fd5a2e1SPrashanth Swaminathan fflush(out);
1246*1fd5a2e1SPrashanth Swaminathan #endif
1247*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 57
1248*1fd5a2e1SPrashanth Swaminathan Dr = D_Dfd(D1,f2,d3);
1249*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%g}\n",Dr.x);
1250*1fd5a2e1SPrashanth Swaminathan fflush(out);
1251*1fd5a2e1SPrashanth Swaminathan Dr.x = 0.0; clear_traces();
1252*1fd5a2e1SPrashanth Swaminathan {
1253*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_Double_elements[] = { &ffi_type_double, NULL };
1254*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_Double;
1255*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.type = FFI_TYPE_STRUCT;
1256*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.size = sizeof(Double);
1257*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.alignment = alignof_slot(Double);
1258*1fd5a2e1SPrashanth Swaminathan ffi_type_Double.elements = ffi_type_Double_elements;
1259*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_Double, &ffi_type_float, &ffi_type_double };
1260*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1261*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_Double);
1262*1fd5a2e1SPrashanth Swaminathan {
1263*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &D1, &f2, &d3 };
1264*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,D_Dfd,args,&Dr);
1265*1fd5a2e1SPrashanth Swaminathan }
1266*1fd5a2e1SPrashanth Swaminathan }
1267*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%g}\n",Dr.x);
1268*1fd5a2e1SPrashanth Swaminathan fflush(out);
1269*1fd5a2e1SPrashanth Swaminathan #endif
1270*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 58
1271*1fd5a2e1SPrashanth Swaminathan Jr = J_JiJ(J1,i2,J2);
1272*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%ld,%ld}\n",Jr.l1,Jr.l2);
1273*1fd5a2e1SPrashanth Swaminathan fflush(out);
1274*1fd5a2e1SPrashanth Swaminathan Jr.l1 = Jr.l2 = 0; clear_traces();
1275*1fd5a2e1SPrashanth Swaminathan {
1276*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_J_elements[] = { &ffi_type_slong, &ffi_type_slong, NULL };
1277*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_J;
1278*1fd5a2e1SPrashanth Swaminathan ffi_type_J.type = FFI_TYPE_STRUCT;
1279*1fd5a2e1SPrashanth Swaminathan ffi_type_J.size = sizeof(J);
1280*1fd5a2e1SPrashanth Swaminathan ffi_type_J.alignment = alignof_slot(J);
1281*1fd5a2e1SPrashanth Swaminathan ffi_type_J.elements = ffi_type_J_elements;
1282*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_J, &ffi_type_sint, &ffi_type_J };
1283*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1284*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_J);
1285*1fd5a2e1SPrashanth Swaminathan {
1286*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &J1, &i2, &J2 };
1287*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,J_JiJ,args,&Jr);
1288*1fd5a2e1SPrashanth Swaminathan }
1289*1fd5a2e1SPrashanth Swaminathan }
1290*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{%ld,%ld}\n",Jr.l1,Jr.l2);
1291*1fd5a2e1SPrashanth Swaminathan fflush(out);
1292*1fd5a2e1SPrashanth Swaminathan #endif
1293*1fd5a2e1SPrashanth Swaminathan #ifndef SKIP_EXTRA_STRUCTS
1294*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 59
1295*1fd5a2e1SPrashanth Swaminathan Tr = T_TcT(T1,' ',T2);
1296*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{\"%c%c%c\"}\n",Tr.c[0],Tr.c[1],Tr.c[2]);
1297*1fd5a2e1SPrashanth Swaminathan fflush(out);
1298*1fd5a2e1SPrashanth Swaminathan Tr.c[0] = Tr.c[1] = Tr.c[2] = 0; clear_traces();
1299*1fd5a2e1SPrashanth Swaminathan {
1300*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_T_elements[] = { ??, NULL };
1301*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_T;
1302*1fd5a2e1SPrashanth Swaminathan ffi_type_T.type = FFI_TYPE_STRUCT;
1303*1fd5a2e1SPrashanth Swaminathan ffi_type_T.size = sizeof(T);
1304*1fd5a2e1SPrashanth Swaminathan ffi_type_T.alignment = alignof_slot(T);
1305*1fd5a2e1SPrashanth Swaminathan ffi_type_T.elements = ffi_type_T_elements;
1306*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_T, &ffi_type_char, &ffi_type_T };
1307*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1308*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_T);
1309*1fd5a2e1SPrashanth Swaminathan {
1310*1fd5a2e1SPrashanth Swaminathan char space = ' ';
1311*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &T1, &space, &T2 };
1312*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,T_TcT,args,&Tr);
1313*1fd5a2e1SPrashanth Swaminathan }
1314*1fd5a2e1SPrashanth Swaminathan }
1315*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{\"%c%c%c\"}\n",Tr.c[0],Tr.c[1],Tr.c[2]);
1316*1fd5a2e1SPrashanth Swaminathan fflush(out);
1317*1fd5a2e1SPrashanth Swaminathan #endif
1318*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 60
1319*1fd5a2e1SPrashanth Swaminathan Xr = X_BcdB(B1,c2,d3,B2);
1320*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{\"%s\",'%c'}\n",Xr.c,Xr.c1);
1321*1fd5a2e1SPrashanth Swaminathan fflush(out);
1322*1fd5a2e1SPrashanth Swaminathan Xr.c[0]=Xr.c1='\0'; clear_traces();
1323*1fd5a2e1SPrashanth Swaminathan {
1324*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_X_elements[] = { ??, NULL };
1325*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_X;
1326*1fd5a2e1SPrashanth Swaminathan ffi_type_X.type = FFI_TYPE_STRUCT;
1327*1fd5a2e1SPrashanth Swaminathan ffi_type_X.size = sizeof(X);
1328*1fd5a2e1SPrashanth Swaminathan ffi_type_X.alignment = alignof_slot(X);
1329*1fd5a2e1SPrashanth Swaminathan ffi_type_X.elements = ffi_type_X_elements;
1330*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_X, &ffi_type_char, &ffi_type_double, &ffi_type_X };
1331*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1332*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_X);
1333*1fd5a2e1SPrashanth Swaminathan {
1334*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &B1, &c2, &d3, &B2 };
1335*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,X_BcdB,args,&Xr);
1336*1fd5a2e1SPrashanth Swaminathan }
1337*1fd5a2e1SPrashanth Swaminathan }
1338*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->{\"%s\",'%c'}\n",Xr.c,Xr.c1);
1339*1fd5a2e1SPrashanth Swaminathan fflush(out);
1340*1fd5a2e1SPrashanth Swaminathan #endif
1341*1fd5a2e1SPrashanth Swaminathan #endif
1342*1fd5a2e1SPrashanth Swaminathan
1343*1fd5a2e1SPrashanth Swaminathan return;
1344*1fd5a2e1SPrashanth Swaminathan }
1345*1fd5a2e1SPrashanth Swaminathan
1346*1fd5a2e1SPrashanth Swaminathan void
gpargs_boundary_tests(void)1347*1fd5a2e1SPrashanth Swaminathan gpargs_boundary_tests (void)
1348*1fd5a2e1SPrashanth Swaminathan {
1349*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_K_elements[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, NULL };
1350*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_K;
1351*1fd5a2e1SPrashanth Swaminathan ffi_type* ffi_type_L_elements[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, NULL };
1352*1fd5a2e1SPrashanth Swaminathan ffi_type ffi_type_L;
1353*1fd5a2e1SPrashanth Swaminathan long lr;
1354*1fd5a2e1SPrashanth Swaminathan long long llr;
1355*1fd5a2e1SPrashanth Swaminathan float fr;
1356*1fd5a2e1SPrashanth Swaminathan double dr;
1357*1fd5a2e1SPrashanth Swaminathan
1358*1fd5a2e1SPrashanth Swaminathan ffi_type_K.type = FFI_TYPE_STRUCT;
1359*1fd5a2e1SPrashanth Swaminathan ffi_type_K.size = sizeof(K);
1360*1fd5a2e1SPrashanth Swaminathan ffi_type_K.alignment = alignof_slot(K);
1361*1fd5a2e1SPrashanth Swaminathan ffi_type_K.elements = ffi_type_K_elements;
1362*1fd5a2e1SPrashanth Swaminathan
1363*1fd5a2e1SPrashanth Swaminathan ffi_type_L.type = FFI_TYPE_STRUCT;
1364*1fd5a2e1SPrashanth Swaminathan ffi_type_L.size = sizeof(L);
1365*1fd5a2e1SPrashanth Swaminathan ffi_type_L.alignment = alignof_slot(L);
1366*1fd5a2e1SPrashanth Swaminathan ffi_type_L.elements = ffi_type_L_elements;
1367*1fd5a2e1SPrashanth Swaminathan
1368*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 61
1369*1fd5a2e1SPrashanth Swaminathan lr = l_l0K(K1,l9);
1370*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1371*1fd5a2e1SPrashanth Swaminathan fflush(out);
1372*1fd5a2e1SPrashanth Swaminathan lr = 0; clear_traces();
1373*1fd5a2e1SPrashanth Swaminathan {
1374*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_K, &ffi_type_slong };
1375*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1376*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slong);
1377*1fd5a2e1SPrashanth Swaminathan {
1378*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &K1, &l9 };
1379*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,l_l0K,args,&lr);
1380*1fd5a2e1SPrashanth Swaminathan }
1381*1fd5a2e1SPrashanth Swaminathan }
1382*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1383*1fd5a2e1SPrashanth Swaminathan fflush(out);
1384*1fd5a2e1SPrashanth Swaminathan #endif
1385*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 62
1386*1fd5a2e1SPrashanth Swaminathan lr = l_l1K(l1,K1,l9);
1387*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1388*1fd5a2e1SPrashanth Swaminathan fflush(out);
1389*1fd5a2e1SPrashanth Swaminathan lr = 0; clear_traces();
1390*1fd5a2e1SPrashanth Swaminathan {
1391*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_K, &ffi_type_slong };
1392*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1393*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slong);
1394*1fd5a2e1SPrashanth Swaminathan {
1395*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &K1, &l9 };
1396*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,l_l1K,args,&lr);
1397*1fd5a2e1SPrashanth Swaminathan }
1398*1fd5a2e1SPrashanth Swaminathan }
1399*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1400*1fd5a2e1SPrashanth Swaminathan fflush(out);
1401*1fd5a2e1SPrashanth Swaminathan #endif
1402*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 63
1403*1fd5a2e1SPrashanth Swaminathan lr = l_l2K(l1,l2,K1,l9);
1404*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1405*1fd5a2e1SPrashanth Swaminathan fflush(out);
1406*1fd5a2e1SPrashanth Swaminathan lr = 0; clear_traces();
1407*1fd5a2e1SPrashanth Swaminathan {
1408*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_K, &ffi_type_slong };
1409*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1410*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slong);
1411*1fd5a2e1SPrashanth Swaminathan {
1412*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &K1, &l9 };
1413*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,l_l2K,args,&lr);
1414*1fd5a2e1SPrashanth Swaminathan }
1415*1fd5a2e1SPrashanth Swaminathan }
1416*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1417*1fd5a2e1SPrashanth Swaminathan fflush(out);
1418*1fd5a2e1SPrashanth Swaminathan #endif
1419*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 64
1420*1fd5a2e1SPrashanth Swaminathan lr = l_l3K(l1,l2,l3,K1,l9);
1421*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1422*1fd5a2e1SPrashanth Swaminathan fflush(out);
1423*1fd5a2e1SPrashanth Swaminathan lr = 0; clear_traces();
1424*1fd5a2e1SPrashanth Swaminathan {
1425*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_K, &ffi_type_slong };
1426*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1427*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slong);
1428*1fd5a2e1SPrashanth Swaminathan {
1429*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &K1, &l9 };
1430*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,l_l3K,args,&lr);
1431*1fd5a2e1SPrashanth Swaminathan }
1432*1fd5a2e1SPrashanth Swaminathan }
1433*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1434*1fd5a2e1SPrashanth Swaminathan fflush(out);
1435*1fd5a2e1SPrashanth Swaminathan #endif
1436*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 65
1437*1fd5a2e1SPrashanth Swaminathan lr = l_l4K(l1,l2,l3,l4,K1,l9);
1438*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1439*1fd5a2e1SPrashanth Swaminathan fflush(out);
1440*1fd5a2e1SPrashanth Swaminathan lr = 0; clear_traces();
1441*1fd5a2e1SPrashanth Swaminathan {
1442*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_K, &ffi_type_slong };
1443*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1444*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slong);
1445*1fd5a2e1SPrashanth Swaminathan {
1446*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &K1, &l9 };
1447*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,l_l4K,args,&lr);
1448*1fd5a2e1SPrashanth Swaminathan }
1449*1fd5a2e1SPrashanth Swaminathan }
1450*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1451*1fd5a2e1SPrashanth Swaminathan fflush(out);
1452*1fd5a2e1SPrashanth Swaminathan #endif
1453*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 66
1454*1fd5a2e1SPrashanth Swaminathan lr = l_l5K(l1,l2,l3,l4,l5,K1,l9);
1455*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1456*1fd5a2e1SPrashanth Swaminathan fflush(out);
1457*1fd5a2e1SPrashanth Swaminathan lr = 0; clear_traces();
1458*1fd5a2e1SPrashanth Swaminathan {
1459*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_K, &ffi_type_slong };
1460*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1461*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slong);
1462*1fd5a2e1SPrashanth Swaminathan {
1463*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &K1, &l9 };
1464*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,l_l5K,args,&lr);
1465*1fd5a2e1SPrashanth Swaminathan }
1466*1fd5a2e1SPrashanth Swaminathan }
1467*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1468*1fd5a2e1SPrashanth Swaminathan fflush(out);
1469*1fd5a2e1SPrashanth Swaminathan #endif
1470*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 67
1471*1fd5a2e1SPrashanth Swaminathan lr = l_l6K(l1,l2,l3,l4,l5,l6,K1,l9);
1472*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1473*1fd5a2e1SPrashanth Swaminathan fflush(out);
1474*1fd5a2e1SPrashanth Swaminathan lr = 0; clear_traces();
1475*1fd5a2e1SPrashanth Swaminathan {
1476*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_K, &ffi_type_slong };
1477*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1478*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slong);
1479*1fd5a2e1SPrashanth Swaminathan {
1480*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &l6, &K1, &l9 };
1481*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,l_l6K,args,&lr);
1482*1fd5a2e1SPrashanth Swaminathan }
1483*1fd5a2e1SPrashanth Swaminathan }
1484*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%ld\n",lr);
1485*1fd5a2e1SPrashanth Swaminathan fflush(out);
1486*1fd5a2e1SPrashanth Swaminathan #endif
1487*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 68
1488*1fd5a2e1SPrashanth Swaminathan fr = f_f17l3L(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,l6,l7,l8,L1);
1489*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
1490*1fd5a2e1SPrashanth Swaminathan fflush(out);
1491*1fd5a2e1SPrashanth Swaminathan fr = 0.0; clear_traces();
1492*1fd5a2e1SPrashanth Swaminathan {
1493*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_float, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_L };
1494*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1495*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_float);
1496*1fd5a2e1SPrashanth Swaminathan {
1497*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &f1, &f2, &f3, &f4, &f5, &f6, &f7, &f8, &f9, &f10, &f11, &f12, &f13, &f14, &f15, &f16, &f17, &l6, &l7, &l8, &L1 };
1498*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,f_f17l3L,args,&fr);
1499*1fd5a2e1SPrashanth Swaminathan }
1500*1fd5a2e1SPrashanth Swaminathan }
1501*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",fr);
1502*1fd5a2e1SPrashanth Swaminathan fflush(out);
1503*1fd5a2e1SPrashanth Swaminathan #endif
1504*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 69
1505*1fd5a2e1SPrashanth Swaminathan dr = d_d17l3L(d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,l6,l7,l8,L1);
1506*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1507*1fd5a2e1SPrashanth Swaminathan fflush(out);
1508*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
1509*1fd5a2e1SPrashanth Swaminathan {
1510*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_double, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_L };
1511*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1512*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
1513*1fd5a2e1SPrashanth Swaminathan {
1514*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &d1, &d2, &d3, &d4, &d5, &d6, &d7, &d8, &d9, &d10, &d11, &d12, &d13, &d14, &d15, &d16, &d17, &l6, &l7, &l8, &L1 };
1515*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_d17l3L,args,&dr);
1516*1fd5a2e1SPrashanth Swaminathan }
1517*1fd5a2e1SPrashanth Swaminathan }
1518*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1519*1fd5a2e1SPrashanth Swaminathan fflush(out);
1520*1fd5a2e1SPrashanth Swaminathan #endif
1521*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 70
1522*1fd5a2e1SPrashanth Swaminathan llr = ll_l2ll(l1,l2,ll1,l9);
1523*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1524*1fd5a2e1SPrashanth Swaminathan fflush(out);
1525*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
1526*1fd5a2e1SPrashanth Swaminathan {
1527*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slonglong, &ffi_type_slong };
1528*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1529*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
1530*1fd5a2e1SPrashanth Swaminathan {
1531*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &ll1, &l9 };
1532*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_l2ll,args,&llr);
1533*1fd5a2e1SPrashanth Swaminathan }
1534*1fd5a2e1SPrashanth Swaminathan }
1535*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1536*1fd5a2e1SPrashanth Swaminathan fflush(out);
1537*1fd5a2e1SPrashanth Swaminathan #endif
1538*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 71
1539*1fd5a2e1SPrashanth Swaminathan llr = ll_l3ll(l1,l2,l3,ll1,l9);
1540*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1541*1fd5a2e1SPrashanth Swaminathan fflush(out);
1542*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
1543*1fd5a2e1SPrashanth Swaminathan {
1544*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slonglong, &ffi_type_slong };
1545*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1546*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
1547*1fd5a2e1SPrashanth Swaminathan {
1548*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &ll1, &l9 };
1549*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_l3ll,args,&llr);
1550*1fd5a2e1SPrashanth Swaminathan }
1551*1fd5a2e1SPrashanth Swaminathan }
1552*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1553*1fd5a2e1SPrashanth Swaminathan fflush(out);
1554*1fd5a2e1SPrashanth Swaminathan #endif
1555*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 72
1556*1fd5a2e1SPrashanth Swaminathan llr = ll_l4ll(l1,l2,l3,l4,ll1,l9);
1557*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1558*1fd5a2e1SPrashanth Swaminathan fflush(out);
1559*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
1560*1fd5a2e1SPrashanth Swaminathan {
1561*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slonglong, &ffi_type_slong };
1562*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1563*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
1564*1fd5a2e1SPrashanth Swaminathan {
1565*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &ll1, &l9 };
1566*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_l4ll,args,&llr);
1567*1fd5a2e1SPrashanth Swaminathan }
1568*1fd5a2e1SPrashanth Swaminathan }
1569*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1570*1fd5a2e1SPrashanth Swaminathan fflush(out);
1571*1fd5a2e1SPrashanth Swaminathan #endif
1572*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 73
1573*1fd5a2e1SPrashanth Swaminathan llr = ll_l5ll(l1,l2,l3,l4,l5,ll1,l9);
1574*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1575*1fd5a2e1SPrashanth Swaminathan fflush(out);
1576*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
1577*1fd5a2e1SPrashanth Swaminathan {
1578*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slonglong, &ffi_type_slong };
1579*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1580*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
1581*1fd5a2e1SPrashanth Swaminathan {
1582*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &ll1, &l9 };
1583*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_l5ll,args,&llr);
1584*1fd5a2e1SPrashanth Swaminathan }
1585*1fd5a2e1SPrashanth Swaminathan }
1586*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1587*1fd5a2e1SPrashanth Swaminathan fflush(out);
1588*1fd5a2e1SPrashanth Swaminathan #endif
1589*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 74
1590*1fd5a2e1SPrashanth Swaminathan llr = ll_l6ll(l1,l2,l3,l4,l5,l6,ll1,l9);
1591*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1592*1fd5a2e1SPrashanth Swaminathan fflush(out);
1593*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
1594*1fd5a2e1SPrashanth Swaminathan {
1595*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slonglong, &ffi_type_slong };
1596*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1597*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
1598*1fd5a2e1SPrashanth Swaminathan {
1599*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &l6, &ll1, &l9 };
1600*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_l6ll,args,&llr);
1601*1fd5a2e1SPrashanth Swaminathan }
1602*1fd5a2e1SPrashanth Swaminathan }
1603*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1604*1fd5a2e1SPrashanth Swaminathan fflush(out);
1605*1fd5a2e1SPrashanth Swaminathan #endif
1606*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 75
1607*1fd5a2e1SPrashanth Swaminathan llr = ll_l7ll(l1,l2,l3,l4,l5,l6,l7,ll1,l9);
1608*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1609*1fd5a2e1SPrashanth Swaminathan fflush(out);
1610*1fd5a2e1SPrashanth Swaminathan llr = 0; clear_traces();
1611*1fd5a2e1SPrashanth Swaminathan {
1612*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slonglong, &ffi_type_slong };
1613*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1614*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_slonglong);
1615*1fd5a2e1SPrashanth Swaminathan {
1616*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &l6, &l7, &ll1, &l9 };
1617*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,ll_l7ll,args,&llr);
1618*1fd5a2e1SPrashanth Swaminathan }
1619*1fd5a2e1SPrashanth Swaminathan }
1620*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->0x%lx%08lx\n",(long)(llr>>32),(long)(llr&0xffffffff));
1621*1fd5a2e1SPrashanth Swaminathan fflush(out);
1622*1fd5a2e1SPrashanth Swaminathan #endif
1623*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 76
1624*1fd5a2e1SPrashanth Swaminathan dr = d_l2d(l1,l2,d2,l9);
1625*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1626*1fd5a2e1SPrashanth Swaminathan fflush(out);
1627*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
1628*1fd5a2e1SPrashanth Swaminathan {
1629*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_double, &ffi_type_slong };
1630*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1631*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
1632*1fd5a2e1SPrashanth Swaminathan {
1633*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &d2, &l9 };
1634*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_l2d,args,&dr);
1635*1fd5a2e1SPrashanth Swaminathan }
1636*1fd5a2e1SPrashanth Swaminathan }
1637*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1638*1fd5a2e1SPrashanth Swaminathan fflush(out);
1639*1fd5a2e1SPrashanth Swaminathan #endif
1640*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 77
1641*1fd5a2e1SPrashanth Swaminathan dr = d_l3d(l1,l2,l3,d2,l9);
1642*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1643*1fd5a2e1SPrashanth Swaminathan fflush(out);
1644*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
1645*1fd5a2e1SPrashanth Swaminathan {
1646*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_double, &ffi_type_slong };
1647*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1648*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
1649*1fd5a2e1SPrashanth Swaminathan {
1650*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &d2, &l9 };
1651*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_l3d,args,&dr);
1652*1fd5a2e1SPrashanth Swaminathan }
1653*1fd5a2e1SPrashanth Swaminathan }
1654*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1655*1fd5a2e1SPrashanth Swaminathan fflush(out);
1656*1fd5a2e1SPrashanth Swaminathan #endif
1657*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 78
1658*1fd5a2e1SPrashanth Swaminathan dr = d_l4d(l1,l2,l3,l4,d2,l9);
1659*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1660*1fd5a2e1SPrashanth Swaminathan fflush(out);
1661*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
1662*1fd5a2e1SPrashanth Swaminathan {
1663*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_double, &ffi_type_slong };
1664*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1665*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
1666*1fd5a2e1SPrashanth Swaminathan {
1667*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &d2, &l9 };
1668*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_l4d,args,&dr);
1669*1fd5a2e1SPrashanth Swaminathan }
1670*1fd5a2e1SPrashanth Swaminathan }
1671*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1672*1fd5a2e1SPrashanth Swaminathan fflush(out);
1673*1fd5a2e1SPrashanth Swaminathan #endif
1674*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 79
1675*1fd5a2e1SPrashanth Swaminathan dr = d_l5d(l1,l2,l3,l4,l5,d2,l9);
1676*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1677*1fd5a2e1SPrashanth Swaminathan fflush(out);
1678*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
1679*1fd5a2e1SPrashanth Swaminathan {
1680*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_double, &ffi_type_slong };
1681*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1682*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
1683*1fd5a2e1SPrashanth Swaminathan {
1684*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &d2, &l9 };
1685*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_l5d,args,&dr);
1686*1fd5a2e1SPrashanth Swaminathan }
1687*1fd5a2e1SPrashanth Swaminathan }
1688*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1689*1fd5a2e1SPrashanth Swaminathan fflush(out);
1690*1fd5a2e1SPrashanth Swaminathan #endif
1691*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 80
1692*1fd5a2e1SPrashanth Swaminathan dr = d_l6d(l1,l2,l3,l4,l5,l6,d2,l9);
1693*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1694*1fd5a2e1SPrashanth Swaminathan fflush(out);
1695*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
1696*1fd5a2e1SPrashanth Swaminathan {
1697*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_double, &ffi_type_slong };
1698*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1699*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
1700*1fd5a2e1SPrashanth Swaminathan {
1701*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &l6, &d2, &l9 };
1702*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_l6d,args,&dr);
1703*1fd5a2e1SPrashanth Swaminathan }
1704*1fd5a2e1SPrashanth Swaminathan }
1705*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1706*1fd5a2e1SPrashanth Swaminathan fflush(out);
1707*1fd5a2e1SPrashanth Swaminathan #endif
1708*1fd5a2e1SPrashanth Swaminathan #if (!defined(DGTEST)) || DGTEST == 81
1709*1fd5a2e1SPrashanth Swaminathan dr = d_l7d(l1,l2,l3,l4,l5,l6,l7,d2,l9);
1710*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1711*1fd5a2e1SPrashanth Swaminathan fflush(out);
1712*1fd5a2e1SPrashanth Swaminathan dr = 0.0; clear_traces();
1713*1fd5a2e1SPrashanth Swaminathan {
1714*1fd5a2e1SPrashanth Swaminathan ffi_type* argtypes[] = { &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_slong, &ffi_type_double, &ffi_type_slong };
1715*1fd5a2e1SPrashanth Swaminathan ffi_cif cif;
1716*1fd5a2e1SPrashanth Swaminathan FFI_PREP_CIF(cif,argtypes,ffi_type_double);
1717*1fd5a2e1SPrashanth Swaminathan {
1718*1fd5a2e1SPrashanth Swaminathan /*const*/ void* args[] = { &l1, &l2, &l3, &l4, &l5, &l6, &l7, &d2, &l9 };
1719*1fd5a2e1SPrashanth Swaminathan FFI_CALL(cif,d_l7d,args,&dr);
1720*1fd5a2e1SPrashanth Swaminathan }
1721*1fd5a2e1SPrashanth Swaminathan }
1722*1fd5a2e1SPrashanth Swaminathan fprintf(out,"->%g\n",dr);
1723*1fd5a2e1SPrashanth Swaminathan fflush(out);
1724*1fd5a2e1SPrashanth Swaminathan #endif
1725*1fd5a2e1SPrashanth Swaminathan return;
1726*1fd5a2e1SPrashanth Swaminathan }
1727*1fd5a2e1SPrashanth Swaminathan
1728*1fd5a2e1SPrashanth Swaminathan int
main(void)1729*1fd5a2e1SPrashanth Swaminathan main (void)
1730*1fd5a2e1SPrashanth Swaminathan {
1731*1fd5a2e1SPrashanth Swaminathan ffi_type_char = (char)(-1) < 0 ? ffi_type_schar : ffi_type_uchar;
1732*1fd5a2e1SPrashanth Swaminathan out = stdout;
1733*1fd5a2e1SPrashanth Swaminathan
1734*1fd5a2e1SPrashanth Swaminathan void_tests();
1735*1fd5a2e1SPrashanth Swaminathan int_tests();
1736*1fd5a2e1SPrashanth Swaminathan float_tests();
1737*1fd5a2e1SPrashanth Swaminathan double_tests();
1738*1fd5a2e1SPrashanth Swaminathan pointer_tests();
1739*1fd5a2e1SPrashanth Swaminathan mixed_number_tests();
1740*1fd5a2e1SPrashanth Swaminathan small_structure_return_tests();
1741*1fd5a2e1SPrashanth Swaminathan structure_tests();
1742*1fd5a2e1SPrashanth Swaminathan gpargs_boundary_tests();
1743*1fd5a2e1SPrashanth Swaminathan
1744*1fd5a2e1SPrashanth Swaminathan exit(0);
1745*1fd5a2e1SPrashanth Swaminathan }
1746