OSDN Git Service

Merge from transactional-memory branch.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr36017.c
1 /* PR rtl-optimization/36017 */
2 /* { dg-do run } */
3 /* { dg-options "-O2" } */
4
5 extern double sqrt (double);
6 extern void abort (void);
7
8 __attribute__((noinline)) double
9 foo (double a)
10 {
11   double b, c, d = 0.7;
12   if (a <= d)
13     b = sqrt (d * a);
14   else
15     {
16       c = (1.0 - d) * (1.0 - a);
17       b = c > 0 ? 1.0 - sqrt (c) : 1.0;
18     }
19   return b;
20 }
21
22 int
23 main (void)
24 {
25   double c = foo (0.5);
26   if (c > 0.5917)
27     abort ();
28   return 0;
29 }