#include "libtest.h"
#ifdef FFI_PL_PROBE_LONGDOUBLE
EXTERN long double
longdouble_add(long double a, long double b)
{
return a + b;
}
EXTERN int
longdouble_pointer_test(long double *a, long double *b)
{
if(*a + *b != 4.0L)
return 0;
*a = 4.0L;
*b = 8.0L;
return 1;
}
EXTERN long double *
longdouble_pointer_return_test(long double a)
{
static long double *keep = NULL;
if(keep == NULL)
keep = malloc(sizeof(long double));
*keep = a;
return keep;
}
EXTERN int
longdouble_array_test(long double *a, int n)
{
long double sum;
int i;
int ret;
for(sum=0.0,i=0; i < n; i++)
{
sum += a[i];
}
if(sum == 100.00)
ret = 1;
else
ret = 0;
for(i=0; i < n; i++)
a[i] = (long double) i+1;
return ret;
}
EXTERN long double *
longdouble_array_return_test()
{
static long double keep[3] = { 1.0, 2.0, 3.0 };
return keep;
}
#endif