![]() |
|
Message-ID: <5db7df90-7aed-c781-863c-2bf62a43a683@esi.com.au> Date: Thu, 3 Jul 2025 18:00:40 +1000 (AEST) From: Damian McGuckin <damianm@....com.au> To: musl@...ts.openwall.com Subject: Re: sqrt does not emit errno=EDOM Hi Paul, On Thu, 3 Jul 2025, Paul Zimmermann wrote: > it seems musl does not set errno=EDOM for sqrt(x) when x is negative. > Here on cfarm27 (Alpine Linux): > > $ cat /tmp/e.c > #include <stdio.h> > #include <math.h> > #include <errno.h> > > int > main() > { > errno = 0; > float x = -1.0f; > float y = sqrtf (x); > printf ("y=%a errno=%d\n", y, errno); > } > > $ gcc /tmp/e.c -lm > $ ./a.out > y=-nan errno=0 > > Is this a known issue? I think it is a policy issue: Errors are reported by raising floating-point status flags ie. math_errhandling is set to MATH_ERREXCEPT on all platforms (errno is not set by math functions and on platforms without IEEE 754 exception semantics there is no error reporting). Later - Damian
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.