[Issue 20759] Invalid printf checks for long double on win64

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Apr 22 14:52:07 UTC 2020


https://issues.dlang.org/show_bug.cgi?id=20759

--- Comment #2 from moonlightsentinel at disroot.org ---
(In reply to kinke from comment #1)
> This is specific to DMD and should be an issue with -m32mscoff too.

-m32mscoff yiels the same deprecation message

> The deprecation wrt. double is IMO valid, as `%Lg` with a double isn't
> portable and just happens to work for targets with 64-bit reals, but this
> deprecation should IMO be host-agnostic, i.e., not suddenly popping up when
> targeting AArch64 or Posix x86.

Sure  but it's still a false positive on certain targets. Also, this snippet
would still cause deprecations despite working for 64 and 80 bit reals:

printf("%Lg", cast(c_long_double) value);

Should a user have to replace this with e.g.:

static if (is(c_long_double == double))
    enum fmt = "%g";
else
    enum fmt = "%Lg";

printf(fmt, value);

--


More information about the Digitalmars-d-bugs mailing list