diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/981007-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/981007-1.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/981007-1.c b/gcc/testsuite/gcc.c-torture/compile/981007-1.c new file mode 100644 index 000000000..d41400b78 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/981007-1.c @@ -0,0 +1,21 @@ +extern double fabs (double); +extern double sqrt (double); + +typedef struct complexm { + double re,im; +} complex; + +static complex +setCom (double r, double i) +{ + complex ct; + ct.re=fabs(r)<1E-300?0.0:r; + ct.im=fabs(i)<1E-300?0.0:i; + return ct; +} + +static complex +csqrt_crash (double x) +{ + return (x>=0) ? setCom(sqrt(x),0) : setCom(0,sqrt(-x)); +} |