summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/builtins-54.c
blob: 29cdf20663def652fe3dbfc3a573057f6740bfc0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* { dg-do link } */
/* { dg-options "-O2 -ffast-math" } */

double cabs(__complex__ double);
float cabsf(__complex__ float);
long double cabsl(__complex__ long double);

void link_error (void);

void test(__complex__ double x)
{
  if (cabs(x) != cabs(-x))
    link_error();

  if (cabs(x) != cabs(~x))
    link_error();
}

void testf(__complex__ float x)
{
  if (cabsf(x) != cabsf(-x))
    link_error();

  if (cabsf(x) != cabsf(~x))
    link_error();
}

void testl(__complex__ long double x)
{
  if (cabsl(x) != cabsl(-x))
    link_error();

  if (cabsl(x) != cabsl(~x))
    link_error();
}

int main()
{
  test(0.0);
  testf(0.0);
  testl(0.0);
  return 0;
}