September 02, 2021 [Issue 22266] New: core.stdc.stdio.snprintf returns wrong value if the buffer is not sufficiently large | ||||
|---|---|---|---|---|
| ||||
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. -- | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply