Commit 34a6ccda by Uros Bizjak Committed by Uros Bizjak

return_fl2.c (return_fl): Mark as static.

        * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
        Use 'volatile float sum' to create sum of floats to avoid false
        negative due to excess precision on ix86 targets.
        (main): Ditto.

From-SVN: r123180
parent 653de3e3
2007-03-24 Uros Bizjak <ubizjak@gmail.com>
* testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
Use 'volatile float sum' to create sum of floats to avoid false
negative due to excess precision on ix86 targets.
(main): Ditto.
2007-03-08 Alexandre Oliva <aoliva@redhat.com> 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
* src/powerpc/ffi.c (flush_icache): Fix left-over from previous * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
......
...@@ -7,12 +7,13 @@ ...@@ -7,12 +7,13 @@
/* { dg-do run } */ /* { dg-do run } */
#include "ffitest.h" #include "ffitest.h"
/* To avoid a false negative on ix86 do not declare the return_fl static. /* Use volatile float to avoid false negative on ix86. See PR target/323. */
See PR323. static float return_fl(float fl1, float fl2, float fl3, float fl4)
*/
float return_fl(float fl1, float fl2, float fl3, float fl4)
{ {
return fl1 + fl2 + fl3 + fl4; volatile float sum;
sum = fl1 + fl2 + fl3 + fl4;
return sum;
} }
int main (void) int main (void)
{ {
...@@ -20,6 +21,7 @@ int main (void) ...@@ -20,6 +21,7 @@ int main (void)
ffi_type *args[MAX_ARGS]; ffi_type *args[MAX_ARGS];
void *values[MAX_ARGS]; void *values[MAX_ARGS];
float fl1, fl2, fl3, fl4, rfl; float fl1, fl2, fl3, fl4, rfl;
volatile float sum;
args[0] = &ffi_type_float; args[0] = &ffi_type_float;
args[1] = &ffi_type_float; args[1] = &ffi_type_float;
...@@ -40,6 +42,8 @@ int main (void) ...@@ -40,6 +42,8 @@ int main (void)
ffi_call(&cif, FFI_FN(return_fl), &rfl, values); ffi_call(&cif, FFI_FN(return_fl), &rfl, values);
printf ("%f vs %f\n", rfl, return_fl(fl1, fl2, fl3, fl4)); printf ("%f vs %f\n", rfl, return_fl(fl1, fl2, fl3, fl4));
CHECK(rfl == fl1 + fl2 + fl3 + fl4);
sum = fl1 + fl2 + fl3 + fl4;
CHECK(rfl == sum);
exit(0); exit(0);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment