Bug 10401 – ICE(ztc/symbol.c 1035) - inline Nullable struct with JSONValue

Status
RESOLVED
Resolution
WORKSFORME
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-06-18T04:57:00Z
Last change time
2013-10-07T00:15:44Z
Keywords
ice
Assigned to
nobody
Creator
kroeplin.d

Comments

Comment #0 by kroeplin.d — 2013-06-18T04:57:10Z
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.