On Aug 30 14:39, Brian Inglis wrote: > On 2020-08-30 07:00, Corinna Vinschen wrote: > > On Aug 29 08:52, airplanemath via Cygwin wrote: > >> I have two reports. A brief description of the system: > >> $ uname -a | sed "s/${HOSTNAME}/\${HOSTNAME}/g" > >> CYGWIN_NT-10.0 ${HOSTNAME} 3.1.7(0.340/5/3) 2020-08-22 17:48 x86_64 Cygwin > ... > >> $ cat test.c > >> #include <math.h> > >> #include <stdio.h> > >> #include <stdlib.h> > >> > >> int main(int argc, char *argv[]) { > >> long double a, b, c; > >> char *num_end = NULL; > >> a = b = c = 0.0L; > >> if (argc != 2) { > >> fprintf(stderr, "Usage: %s NUMBER\n", argv[0]); > >> exit(1); > >> } > >> a = strtold(argv[1], &num_end); > >> b = modfl(a, &c); > >> printf("%Lf %Lf %Lf\n", a, b, c); > >> return 0; > >> } > > > > This is a bug in the assembler code taken from Mingw-w64. The bug has > > been fixed upstream, so I just pulled in the upstream fixes. > > The 64 bit fix doesn't pop eax but *now* flags eax as clobbered, whereas the > 32 > bit fix both pops and *now* flags eax as clobbered, which it really doesn't > need > to do. Is this inconsistent treatment correct?
You may be right that this is not necessary on i686, but it doesn't hurt either and I'd like to stick to the upstream code if possible. Corinna -- Corinna Vinschen Cygwin Maintainer -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple