digitalmars.D.bugs - [Issue 5536] New: Array append with dollar op on 64-bit
- d-bugmail puremagic.com (39/39) Feb 06 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5536
- d-bugmail puremagic.com (12/12) Feb 06 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5536
http://d.puremagic.com/issues/show_bug.cgi?id=5536 Summary: Array append with dollar op on 64-bit Product: D Version: unspecified Platform: x86_64 OS/Version: FreeBSD Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: dawg dawgfoto.de --- Comment #0 from dawg dawgfoto.de 2011-02-06 18:20:48 PST --- import std.stdio; void main() { int[] as = [111, 666]; writeln(as); as ~= as[$ - 2]; //!<- doesn't append 111 but the one right to it writeln(as); //! subtracting one more works correctly int[] bs = [111, 666]; writeln(bs); bs ~= bs[$ - 3]; writeln(bs); //! fetches memory outside of array int[] cs = [111]; auto mem = *(&cs[0] + 1); writeln(cs); cs ~= cs[$ - 1]; writeln(cs); assert(cs[1] == mem); } ----- !!! 64-bit specific error !!! Assign appending using the dollar op fetches the wrong value. Behaves as if the array length is updated before evaluating the dollar op. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 06 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5536 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #1 from Walter Bright <bugzilla digitalmars.com> 2011-02-06 23:12:35 PST --- https://github.com/D-Programming-Language/dmd/commit/f02795d86981f3b2560d4b1962dcea872daca484 https://github.com/D-Programming-Language/dmd/commit/835e7cfb6936bc796fa7857828dec5a07b2f604e -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 06 2011