Bug 1096 – Mysterious hang with toUTCString + UTCtoLocalTime + d_time_nan
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
phobos
Product
D
Version
D1 (retired)
Platform
x86
OS
Windows
Creation time
2007-04-05T09:28:00Z
Last change time
2014-02-16T15:26:26Z
Assigned to
bugzilla
Creator
daniel.keep+d.puremagic.com
Comments
Comment #0 by daniel.keep+d.puremagic.com — 2007-04-05T09:28:27Z
Using the below program:
-----
module timetest;
import std.stdio;
import std.date;
void main(char[][] args)
{
foreach( arg ; args[1..$] )
{
auto time = parse(arg);
time = UTCtoLocalTime(time); // Line 11
auto str = toUTCString(time); // Line 12
writefln(`"%s" = %s (%s)`, arg, time, str);
}
}
-----
If I compile this and call it like this:
$ timetest "Jan 1"
The program hangs. If I comment out UTCtoLocalTime, and re-run with the same arguments, it outputs
"Jan 1" = -9223372036854775808 (Invalid Date)
Now it gets weird. If I un-comment line 11 and comment line 12 (replace the "str" arg to writefln with ""), I get:
"Jan 1" = -9223372036818775808 ()
And if I then comment-out line 11 again, rerun, I get:
"Jan 1" = -9223372036854775808 ()
So, for some reason, toUTCString fails on d_time_nan iif it has been passed through UTCtoLocalTime, despite the fact that UTCtoLocalTime doesn't change the value.