With D 2.063 and D 2.063.2 the following code does no longer compile with switch '-inline':
import std.json;
import std.typecons;
struct S
{
JSONValue value;
}
void f(Nullable!S s) { }
The error message is:
Internal error: ../ztc/symbol.c 1035
Comment #1 by hsteoh — 2013-06-29T13:42:43Z
Confirmed on DMD git HEAD (5a97c27ed1081357e48a5658b71a357addfcfb62) on Linux/amd64.
Comment #2 by hsteoh — 2013-06-29T14:16:00Z
The ICE appears to be introduced by DMD commit 42e929a12c4df7a68e7bc721479a36697abce67b (fix for issue #3789).
However, due to changes in Phobos, the above version of DMD is unable to reproduce the same problem in Phobos git HEAD; the latest version of Phobos that this version of DMD is able to compile (and reproduce the problem) is 41098e3f49492fb1cd44137c4cac41083c5e34c1.
(tldr: to reproduce the bug, first checkout Phobos commit 41098e3, otherwise the bug won't show up in the referenced DMD commit above, since newer versions of Phobos use syntax only supported by later versions of DMD.)
Comment #3 by bugzilla — 2013-10-07T00:15:44Z
Compiles without error with 2.064 with and without -inline.