[Issue 3496] ICE(cgelem.c, optimizer bug) cast(void *)(x1)== null.
http://d.puremagic.com/issues/show_bug.cgi?id=3496 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #7 from Walter Bright bugzi...@digitalmars.com 2009-12-06 00:47:30 PST --- Fixed dmd 1.053 and 2.037 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3496] ICE(cgelem.c, optimizer bug) cast(void *)(x1)== null.
http://d.puremagic.com/issues/show_bug.cgi?id=3496 David Simcha dsim...@yahoo.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #6 from David Simcha dsim...@yahoo.com 2009-12-05 18:33:06 PST --- Fixed 2.037. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3496] ICE(cgelem.c, optimizer bug) cast(void *)(x1)== null.
http://d.puremagic.com/issues/show_bug.cgi?id=3496 Leandro Lucarella llu...@gmail.com changed: What|Removed |Added CC||llu...@gmail.com --- Comment #5 from Leandro Lucarella llu...@gmail.com 2009-11-23 06:48:08 PST --- SVN commit: http://www.dsource.org/projects/dmd/changeset/267 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3496] ICE(cgelem.c, optimizer bug) cast(void *)(x1)== null.
http://d.puremagic.com/issues/show_bug.cgi?id=3496 Don clugd...@yahoo.com.au changed: What|Removed |Added Version|unspecified |1.00 Summary|ICE ..\ztc\cgelem.c 3387|ICE(cgelem.c, optimizer ||bug) cast(void *)(x1)== ||null. --- Comment #3 from Don clugd...@yahoo.com.au 2009-11-13 12:42:02 PST --- Reduced test case. Compile with -O (-inline not required). Not a regression; fails on DMD0.165. bool foo() { int x; return cast(void*) (x 1) == null; } Internal error: ztc\cgelem.c 3387 Really peculiar thing is that replacing with | or ^ makes the bug disappear. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3496] ICE(cgelem.c, optimizer bug) cast(void *)(x1)== null.
http://d.puremagic.com/issues/show_bug.cgi?id=3496 Don clugd...@yahoo.com.au changed: What|Removed |Added Keywords||patch --- Comment #4 from Don clugd...@yahoo.com.au 2009-11-13 13:17:00 PST --- This assert is actually completely harmless. It's part of a check for if the equality comparison can be reduced to a single byte comparison. This can happen if it's a pointer with all the high bits clear, which includes null. Here are 3 cases which trigger the same bug. bool foo() { int x; // return cast(void*) (x 1) == null; // Case 1 // return cast(void*) (x 1) == cast(void *)(2); // Case 2 return cast(bool function()) (x 1) == null;// Case 3 } PATCH: cgelem.c, line 3387. /* Try to convert to byte/word comparison for ((x c)==d) when mask c essentially casts x to a smaller type */ if (OPTIMIZER e1-Eoper == OPand e1-E2-Eoper == OPconst (sz = tysize(e2-Ety)) CHARSIZE) { int op; -assert(tyintegral(e2-Ety)); +assert(tyintegral(e2-Ety) || (e2-Ety == TYnptr)); #if TX86/* ending up with byte ops in A regs */ if (!(el_tolong(e2) ~CHARMASK) !(el_tolong(e1-E2) ~CHARMASK) ) { -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---