summaryrefslogtreecommitdiff
path: root/testsuite/libffi.closures/cls_24byte.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/libffi.closures/cls_24byte.c')
-rw-r--r--testsuite/libffi.closures/cls_24byte.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/testsuite/libffi.closures/cls_24byte.c b/testsuite/libffi.closures/cls_24byte.c
index 78796da..b204966 100644
--- a/testsuite/libffi.closures/cls_24byte.c
+++ b/testsuite/libffi.closures/cls_24byte.c
@@ -33,6 +33,30 @@ cls_struct_24byte cls_struct_24byte_fn(struct cls_struct_24byte b0,
b2.a, b2.b, b2.c, b2.d,
b3.a, b3.b, b3.c, b3.d,
result.a, result.b, result.c, result.d);
+ CHECK_DOUBLE_EQ(b0.a, 9);
+ CHECK_DOUBLE_EQ(b0.b, 2);
+ CHECK(b0.c == 6);
+ CHECK_FLOAT_EQ(b0.d, 5);
+
+ CHECK_DOUBLE_EQ(b1.a, 1);
+ CHECK_DOUBLE_EQ(b1.b, 2);
+ CHECK(b1.c == 3);
+ CHECK_FLOAT_EQ(b1.d, 7);
+
+ CHECK_DOUBLE_EQ(b2.a, 4);
+ CHECK_DOUBLE_EQ(b2.b, 5);
+ CHECK(b2.c == 7);
+ CHECK_FLOAT_EQ(b2.d, 9);
+
+ CHECK_DOUBLE_EQ(b3.a, 8);
+ CHECK_DOUBLE_EQ(b3.b, 6);
+ CHECK(b3.c == 1);
+ CHECK_FLOAT_EQ(b3.d, 4);
+
+ CHECK_DOUBLE_EQ(result.a, 22);
+ CHECK_DOUBLE_EQ(result.b, 15);
+ CHECK(result.c == 17);
+ CHECK_FLOAT_EQ(result.d, 25);
return result;
}
@@ -97,6 +121,10 @@ int main (void)
/* { dg-output "9 2 6 5 1 2 3 7 4 5 7 9 8 6 1 4: 22 15 17 25" } */
printf("res: %g %g %d %g\n", res_dbl.a, res_dbl.b, res_dbl.c, res_dbl.d);
/* { dg-output "\nres: 22 15 17 25" } */
+ CHECK_DOUBLE_EQ(res_dbl.a, 22);
+ CHECK_DOUBLE_EQ(res_dbl.b, 15);
+ CHECK(res_dbl.c == 17);
+ CHECK_FLOAT_EQ(res_dbl.d, 25);
CHECK(ffi_prep_closure_loc(pcl, &cif, cls_struct_24byte_gn, NULL, code) == FFI_OK);
@@ -108,6 +136,10 @@ int main (void)
/* { dg-output "\n9 2 6 5 1 2 3 7 4 5 7 9 8 6 1 4: 22 15 17 25" } */
printf("res: %g %g %d %g\n", res_dbl.a, res_dbl.b, res_dbl.c, res_dbl.d);
/* { dg-output "\nres: 22 15 17 25" } */
+ CHECK_DOUBLE_EQ(res_dbl.a, 22);
+ CHECK_DOUBLE_EQ(res_dbl.b, 15);
+ CHECK(res_dbl.c == 17);
+ CHECK_FLOAT_EQ(res_dbl.d, 25);
exit(0);
}