digitalmars.D.bugs - [Issue 7091] New: ICE in Statement::blockExit
- d-bugmail puremagic.com (41/41) Dec 10 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7091
- d-bugmail puremagic.com (28/28) Dec 10 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7091
- d-bugmail puremagic.com (23/23) Dec 10 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7091
- d-bugmail puremagic.com (12/12) Dec 10 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7091
- d-bugmail puremagic.com (11/11) Dec 12 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7091
- d-bugmail puremagic.com (10/10) Apr 28 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7091
http://d.puremagic.com/issues/show_bug.cgi?id=7091
Summary: ICE in Statement::blockExit
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Keywords: ice-on-invalid-code, ice-on-valid-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: mrmocool gmx.de
struct Matrix(T)
{
int opApply(scope int delegate(ref size_t, ref T) ) { }
int opApply(scope int delegate(ref const(size_t), ref const(T)) ) { }
Matrix!() opBinary() {
foreach (i, ref val; this)
mixin("result[i] = val " ~ op ~ " other[i];"); return result;
}
}
void main() { auto m = Matrix!size_t; }
$ dmd -c test2.d
test2.d(7): Error: template instance Matrix!() Matrix!() does not match
template declaration Matrix(T)
test2.d(7): Error: Matrix!() is used as a type
test2.d(4): Error: function test2.Matrix!(ulong).Matrix.opApply has no return
statement, but is expected to return a value of type int
test2.d(5): Error: function test2.Matrix!(ulong).Matrix.opApply has no return
statement, but is expected to return a value of type int
test2.d(8): Error: cannot uniquely infer foreach argument types
test2.d(9): Error: undefined identifier result
Statement::blockExit(0xcd15e0)
mixin("result[i] = val " ~ op ~ " other[i];");
dmd: statement.c:144: virtual int Statement::blockExit(bool): Assertion `0'
failed.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 10 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7091
more valid case:
struct Matrix(T)
{
property T[] data() { return null; }
int opApply(scope int delegate(ref size_t[], ref T) dg) { return 0; }
int opApply(scope int delegate(ref const(size_t[]), ref const(T)) dg) const
{ return 0; }
Matrix!(typeof(mixin("data[0] " ~ op ~ " data[0]"))) opBinary(string
op)(Matrix other)
{
auto result = typeof(return)();
foreach (i, ref val; this)
{ mixin("result[i] = val " ~ op ~ " other[i];"); }
return result;
}
}
void main() { auto m = Matrix!size_t(); m = m * m; }
$ dmd -c test2.d
test2.d(11): Error: cannot uniquely infer foreach argument types
Statement::blockExit(0x1c509c0)
mixin("result[i] = val " ~ op ~ " other[i];");
dmd: statement.c:144: virtual int Statement::blockExit(bool): Assertion `0'
failed.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 10 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7091
More simple test code:
----
void main()
{
int[] arr;
foreach (x, i, v; arr)
{
mixin("");
}
}
output:
----
test.d(4): Error: cannot infer type for i
test.d(4): Error: cannot infer type for v
Statement::blockExit(002B6810)
mixin("");
Assertion failure: '0' on line 144 in file 'statement.c'
abnormal program termination
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 10 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7091
Kenji Hara <k.hara.pg gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|ice-on-valid-code |patch
This problem occurs only on invalid code. So it isn't 'ice-on-valid-code'.
Patch:
https://github.com/D-Programming-Language/dmd/pull/553
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 10 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7091
Trass3r <mrmocool gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
https://github.com/D-Programming-Language/dmd/commit/1a2277c73f7dcc7d5faf2f17cdcbbc6e801f16e8
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 12 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7091
SomeDude <lovelydear mailmetrash.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |lovelydear mailmetrash.com
PDT ---
No more ICE on 2.059 Win32
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Apr 28 2012









d-bugmail puremagic.com 