Thread overview | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 01, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 --- Comment #1 from b2.temp@gmx.com --- definition of Foo can be reduced to class Foo { alias TreeItemType = typeof(this); TreeItemSiblings!TreeItemType _siblings; // remove this decl TreeItemChildren!TreeItemType _children; // or this one : OK } |
June 01, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 ag0aep6g@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice CC| |ag0aep6g@gmail.com --- Comment #2 from ag0aep6g@gmail.com --- Reduced further: ---- bool check() { bool result = false; result |= false; // result = result | ... : OK if (result) goto ret; // remove this line : OK result |= false; // result = result | ... : OK if (result) {} // remove this line : OK ret: return true; } enum e = check(); ---- -- |
June 01, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 --- Comment #3 from b2.temp@gmx.com --- (In reply to ag0aep6g from comment #2) > Reduced further: > > ---- > bool check() > { > bool result = false; > > result |= false; // result = result | ... : OK > if (result) goto ret; // remove this line : OK > > result |= false; // result = result | ... : OK > if (result) {} // remove this line : OK > > ret: return true; > } > > enum e = check(); > ---- OMG, Can someone fix this fast PLZ ? I don't know if you'll agree but this is not some "super sharp" code, just a bunch of OrEqual ! -- |
July 18, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 --- Comment #4 from b2.temp@gmx.com --- ping. do you realize that by nature this bug is very disruptive ? It kills the boolean logic. -- |
September 02, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 hsteoh@quickfur.ath.cx changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hsteoh@quickfur.ath.cx -- |
September 02, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 --- Comment #5 from hsteoh@quickfur.ath.cx --- I managed to trace the error to freenode() in backend/cgcod.c, for some reason it gets called with an elem with e->Ecomsub==0, so when it tries to decrement it, e->Ecomsub rolls over to 255, which eventually triggers this assert. However, I couldn't figure out enough of the backend code to actually fix this. I tried changing the if-statement in freenode() to `if (e->Ecomsub==0 || e->Ecomsub--) return;`, and it works for this particular test case, but then it fails to compile the d_do_test tool, so obviously this is the wrong fix. So this will probably need Walter to look at it. :-P -- |
September 02, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 hsteoh@quickfur.ath.cx changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com -- |
September 02, 2016 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 --- Comment #6 from hsteoh@quickfur.ath.cx --- P.S. The faulty call to freenode() comes from codelem() in cgcod.c. -- |
March 23, 2018 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 Mike Franklin <slavo5150@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |slavo5150@yahoo.com --- Comment #7 from Mike Franklin <slavo5150@yahoo.com> --- > bool check() > { > bool result = false; > > result |= false; // result = result | ... : OK > if (result) goto ret; // remove this line : OK > > result |= false; // result = result | ... : OK > if (result) {} // remove this line : OK > > ret: return true; > } > > enum e = check(); According to https://run.dlang.io/is/98Uf5T, this has been working since 2.067.1. -- |
March 23, 2018 [Issue 16107] [ICE] - Internal error: backend/cgcod.c 2297 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16107 --- Comment #8 from Mike Franklin <slavo5150@yahoo.com> --- > import std.stdio, std.traits; > > struct TreeItemChildren(T){} > > struct TreeItemSiblings(T){} > > class Foo > { > alias TreeItemType = typeof(this); > > TreeItemSiblings!TreeItemType _siblings; // remove this decl > TreeItemChildren!TreeItemType _children; // or this one : OK > } > > template Bug(T) > { > bool check() > { > bool result; > import std.meta: aliasSeqOf; > import std.range: iota; > > foreach(i; aliasSeqOf!(iota(0, T.tupleof.length))) > { > alias MT = typeof(T.tupleof[i]); > static if (is(MT == struct)) > result |= Bug!MT; // result = result | ... : OK > if (result) break; // remove this line : OK > > } > return result; > } > enum Bug = check(); > } > > void main() > { > assert(!Bug!Foo); > } According to https://run.dlang.io/is/kosY23, this has been fixed since 2.070.2 -- |
Copyright © 1999-2021 by the D Language Foundation