From fc501750f41e2ee7f4268f490f590ce97a25a818 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 5 Nov 2014 16:33:44 +0100 Subject: [PATCH] testsuite: Fix return_complex2 vs excessive precision Use the previously computed rc2 to validate, rather than recomputing a floating point result with excess precision. --- testsuite/libffi.call/return_complex2.inc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/testsuite/libffi.call/return_complex2.inc b/testsuite/libffi.call/return_complex2.inc index dad4a0fd..265170bf 100644 --- a/testsuite/libffi.call/return_complex2.inc +++ b/testsuite/libffi.call/return_complex2.inc @@ -2,10 +2,14 @@ #include "ffitest.h" #include -static _Complex T_C_TYPE return_c(_Complex T_C_TYPE c1, _Complex T_C_TYPE c2, unsigned int in3, _Complex T_C_TYPE c4) +_Complex T_C_TYPE +return_c(_Complex T_C_TYPE c1, _Complex T_C_TYPE c2, + unsigned int in3, _Complex T_C_TYPE c4) { - return c1 + c2 + in3 + c4; + volatile _Complex T_C_TYPE r = c1 + c2 + in3 + c4; + return r; } + int main (void) { ffi_cif cif; @@ -35,6 +39,6 @@ int main (void) printf ("%f,%fi vs %f,%fi\n", T_CONV creal (rc), T_CONV cimag (rc), T_CONV creal (rc2), T_CONV cimag (rc2)); - CHECK(rc == c1 + c2 + in3 + c4); + CHECK(rc == rc2); exit(0); }