digitalmars.D.bugs - [Issue 22266] New: core.stdc.stdio.snprintf returns wrong value if
- d-bugmail puremagic.com (25/25) Sep 02 2021 https://issues.dlang.org/show_bug.cgi?id=22266
https://issues.dlang.org/show_bug.cgi?id=22266 Issue ID: 22266 Summary: core.stdc.stdio.snprintf returns wrong value if the buffer is not sufficiently large Product: D Version: D2 Hardware: All OS: Windows Status: NEW Severity: major Priority: P1 Component: tools Assignee: nobody puremagic.com Reporter: ogion.art gmail.com According to C99 specification, if the buffer is not sufficiently large, snprintf should still return the number of characters that would have been written. However, the implementation that DMD uses by default on Windows returns -1 instead. void main() { import core.stdc.stdio; auto n = snprintf(null, 0, "test"); assert(n == 4); //fails } Passing either -m64 or -m32mscoff to DMD solves this. --
Sep 02 2021