/* { 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; }