Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/gcc.dg/pr55019.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/gcc.dg/pr55019.c Fri Oct 27 22:46:09 2017 +0900 @@ -0,0 +1,41 @@ +/* { dg-do run } */ +/* { dg-options "-O1 -funroll-loops" } */ +/* { dg-add-options ieee } */ + +extern void exit (int); +extern void abort (void); + +void +compare (double a, double b) +{ + do + { + double s1 = __builtin_copysign ((double) 1.0, a); + double s2 = __builtin_copysign ((double) 1.0, b); + + if (s1 != s2) + abort (); + + if ((__builtin_isnan (a) != 0) != (__builtin_isnan (b) != 0)) + abort (); + + if ((a != b) != (__builtin_isnan (a) != 0)) + abort (); + } while (0); +} + +int +main () +{ + double a = 0.0; + double b = 0.0; + _Complex double cr = __builtin_complex (a, b); + static _Complex double cs = __builtin_complex (0.0, 0.0); + + compare (__real__ cr, 0.0); + compare (__imag__ cr, 0.0); + compare (__real__ cs, 0.0); + compare (__imag__ cs, 0.0); + + exit (0); +}