summaryrefslogtreecommitdiff
path: root/testsuite/libffi.closures/nested_struct13.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/libffi.closures/nested_struct13.c')
-rw-r--r--testsuite/libffi.closures/nested_struct13.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/testsuite/libffi.closures/nested_struct13.c b/testsuite/libffi.closures/nested_struct13.c
index 6c139b9..6edfdcb 100644
--- a/testsuite/libffi.closures/nested_struct13.c
+++ b/testsuite/libffi.closures/nested_struct13.c
@@ -27,6 +27,14 @@ B B_fn(float b0, struct B b1)
printf("%g %g %g %g: %g %g %g\n", b0, b1.x, b1.y.a, b1.y.b,
result.x, result.y.a, result.y.b);
+ CHECK_FLOAT_EQ(b0, 12.125);
+ CHECK_FLOAT_EQ(b1.x, 24.75);
+ CHECK_FLOAT_EQ(b1.y.a, 31.625);
+ CHECK_FLOAT_EQ(b1.y.b, 32.25);
+ CHECK_FLOAT_EQ(result.x, 36.875);
+ CHECK_FLOAT_EQ(result.y.a, 43.75);
+ CHECK_FLOAT_EQ(result.y.b, 44.375);
+
return result;
}
@@ -91,17 +99,17 @@ int main (void)
ffi_call(&cif, FFI_FN(B_fn), &res_dbl, args_dbl);
/* { dg-output "12.125 24.75 31.625 32.25: 36.875 43.75 44.375" } */
- CHECK( res_dbl.x == (e_dbl + f_dbl.x));
- CHECK( res_dbl.y.a == (e_dbl + f_dbl.y.a));
- CHECK( res_dbl.y.b == (e_dbl + f_dbl.y.b));
+ CHECK_FLOAT_EQ( res_dbl.x, (e_dbl + f_dbl.x));
+ CHECK_FLOAT_EQ( res_dbl.y.a, (e_dbl + f_dbl.y.a));
+ CHECK_FLOAT_EQ( res_dbl.y.b, (e_dbl + f_dbl.y.b));
CHECK(ffi_prep_closure_loc(pcl, &cif, B_gn, NULL, code) == FFI_OK);
res_dbl = ((B(*)(float, B))(code))(e_dbl, f_dbl);
/* { dg-output "\n12.125 24.75 31.625 32.25: 36.875 43.75 44.375" } */
- CHECK( res_dbl.x == (e_dbl + f_dbl.x));
- CHECK( res_dbl.y.a == (e_dbl + f_dbl.y.a));
- CHECK( res_dbl.y.b == (e_dbl + f_dbl.y.b));
+ CHECK_FLOAT_EQ( res_dbl.x, (e_dbl + f_dbl.x));
+ CHECK_FLOAT_EQ( res_dbl.y.a, (e_dbl + f_dbl.y.a));
+ CHECK_FLOAT_EQ( res_dbl.y.b, (e_dbl + f_dbl.y.b));
exit(0);
}