[Issue 16661] New: std/format.d(1070): Incorrect format specifier: .2f for wstring and dstring
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Nov 4 18:24:27 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=16661
Issue ID: 16661
Summary: std/format.d(1070): Incorrect format specifier: .2f
for wstring and dstring
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: regression
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: ttanjo at gmail.com
I reproduced it on Linux 64bit systems.
The following code throws an exception at runtime when using dmd 2.072.0 or
later.
When I use older version of dmd, this code run without exceptions.
=== sample.d
void main(string[] args)
{
import std.format;
assert(format("%.2f"d, 0.4) == "0.40");
}
===
How to reproduce:
===
$ dmd sample.d
$ ./sample
===
Expected:
./sample successfully exits without any outputs.
Actual:
./sample shows the following message:
=========
object.Exception@/home/tomoya/.denv/versions/dmd-trunk/linux/bin64/../../src/phobos/std/format.d(1070):
Incorrect format specifier: .2f
----------------
??:? pure @safe void std.format.FormatSpec!(dchar).FormatSpec.fillUp()
[0x43e24e]
??:? pure @safe bool
std.format.FormatSpec!(dchar).FormatSpec.writeUpToNextSpec!(std.array.Appender!(immutable(dchar)[]).Appender).writeUpToNextSpec(std.array.Appender!(immutable(dchar)[]).Appender)
[0x440487]
??:? @safe uint
std.format.formattedWrite!(std.array.Appender!(immutable(dchar)[]).Appender,
dchar, double).formattedWrite(std.array.Appender!(immutable(dchar)[]).Appender,
const(dchar[]), double) [0x43cc67]
??:? @safe immutable(dchar)[] std.format.format!(dchar,
double).format(const(dchar[]), double) [0x43c6c6]
??:? _Dmain [0x43c64a]
??:? _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv [0x44c4b2]
??:? void rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate()) [0x44c3f8]
??:? void rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).runAll() [0x44c46e]
??:? void rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate()) [0x44c3f8]
??:? _d_run_main [0x44c372]
??:? main [0x44a06d]
??:? __libc_start_main [0x535b0290]
=========
When I use "%.2f" instead of "%.2f"d, it runs without exceptions.
When I use "%.2f"w or "%.2f"d, it throws an exception.
--
More information about the Digitalmars-d-bugs
mailing list