Use union to check float return bits to avoid converting from integer
to float when comparing float return value.  I will check it in after
regression test.


H.J.
---
        * gcc.target/i386/iamcu/test_basic_returning.c
        (def_test_returning_type): Use union to check float return bits.
---
 gcc/testsuite/gcc.target/i386/iamcu/test_basic_returning.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/i386/iamcu/test_basic_returning.c 
b/gcc/testsuite/gcc.target/i386/iamcu/test_basic_returning.c
index 23efa6e..e617d8d 100644
--- a/gcc/testsuite/gcc.target/i386/iamcu/test_basic_returning.c
+++ b/gcc/testsuite/gcc.target/i386/iamcu/test_basic_returning.c
@@ -39,7 +39,10 @@ fun_test_returning_float (void)
 
 #define def_test_returning_type(fun, type, ret, reg) \
   { type var = WRAP_RET (fun) (); \
-  assert (ret == (type) reg && ret == var); }
+    union { type r; unsigned long reg; } u; \
+    u.reg = reg; \
+  assert (ret == u.r && ret == var); }
+
 int
 main (void)
 {
-- 
2.4.3

Reply via email to