Merge from trunk @ 138209
[official-gcc.git] / gcc / testsuite / gcc.dg / callabi / func-1.c
blobc727dbe6e53a576fd82c8d4616c04abf83ac1a84
1 /* Test for cross x86_64<->w64 abi standard calls.
2 */
3 /* Origin: Kai Tietz <kai.tietz@onevision.com> */
4 /* { dg-do run { target { x86_64-*-* } } } */
5 /* { dg-options "-std=gnu99 -ffast-math" } */
6 #include "callabi.h"
8 extern void abort (void);
10 long double
11 CALLABI_CROSS func_cross (long double a, double b, float c, long d, int e,
12 char f)
14 long double ret;
15 ret = a + (long double) b + (long double) c;
16 ret *= (long double) (d + (long) e);
17 if (f>0)
18 ret += func_cross (a,b,c,d,e,-f);
19 return ret;
22 long double
23 CALLABI_NATIVE func_native (long double a, double b, float c, long d, int e,
24 char f)
26 long double ret;
27 ret = a + (long double) b + (long double) c;
28 ret *= (long double) (d + (long) e);
29 if (f>0)
30 ret += func_native (a,b,c,d,e,-f);
31 return ret;
34 int main ()
36 if (func_cross (1.0,2.0,3.0,1,2,3)
37 != func_native (1.0,2.0,3.0,1,2,3))
38 abort ();
39 return 0;