digitalmars.D.bugs - [Issue 3617] New: CTFE: wrong code for if(x) where x is int or smaller
- d-bugmail puremagic.com (41/41) Dec 15 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3617
- d-bugmail puremagic.com (10/10) Dec 15 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3617
- d-bugmail puremagic.com (12/12) Dec 31 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3617
http://d.puremagic.com/issues/show_bug.cgi?id=3617 Summary: CTFE: wrong code for if(x) where x is int or smaller Product: D Version: 1.051 Platform: Other OS/Version: Windows Status: NEW Keywords: patch, wrong-code Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: clugdbug yahoo.com.au Applies to while(), if(), assert(), etc. Also happens if you have (say) uint u = 0x8000_0000; u<<=1; -- since this sets the high bit of the value to 1. TEST CASE: ---- int foo() { int u = cast(int)(0x1_0000_0000L); while (u) { if (u) { assert(u!=0); } assert(u!=0); } return 2; } static assert(foo()==2); -------------------- PATCH: expression.c, around line 1575. Need to convert the value to an appropriate sized integer. int IntegerExp::isBool(int result) { + toInteger(); return result ? value != 0 : value == 0; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 15 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3617 Leandro Lucarella <llucax gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |llucax gmail.com PST --- http://www.dsource.org/projects/dmd/changeset/296 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 15 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3617 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla digitalmars.com Resolution| |FIXED 11:17:28 PST --- Fixed dmd 1.054 and 2.038 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 31 2009