OSDN Git Service

* gcc.dg/torture/builtin-modf-1.c: Remove -funsafe-math-optimizations.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / torture / complex-alias-1.c
1 /* Accesses to complex numbers were sometimes marked as scalar and
2    sometimes as struct accesses.  */
3 /* { dg-do run } */
4 /* { dg-options "-std=c99" } */
5
6 extern void abort (void);
7 static double _Complex *fp_cxd(double _Complex *cx) {
8   return cx;
9 }
10
11 int main( ) {
12   double _Complex cx = 4.0 + 3.0*(__extension__ 1.0iF);
13   double _Complex cx43 = 4.0 + 3.0*(__extension__ 1.0iF);
14   double _Complex cx11 = 1.0 + 1.0*(__extension__ 1.0iF);
15
16   *fp_cxd(&cx) *= cx11;
17   *fp_cxd(&cx) /= cx11;
18
19   double r_cx = __real__(cx);
20   double i_cx = __imag__(cx);
21   double r_cx43 = __real__(cx43);
22   double i_cx43 = __imag__(cx43);
23
24   if( (r_cx == r_cx43) && (i_cx == i_cx43) ) { 
25     return 0;
26   } else {
27     abort ();
28   }
29 }