[Issue 5580] [64-bit] String switch statements broken in 64-bit mode
http://d.puremagic.com/issues/show_bug.cgi?id=5580 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #7 from Walter Bright bugzi...@digitalmars.com 2011-02-16 00:54:02 PST --- https://github.com/D-Programming-Language/dmd/commit/f1c158eac6f9d1a28314c7e473c89be8b8a4f774 https://github.com/D-Programming-Language/dmd/commit/b3bb64d6ff00beddfc45c228941feedeb2e27842 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 5580] [64-bit] String switch statements broken in 64-bit mode
http://d.puremagic.com/issues/show_bug.cgi?id=5580 --- Comment #2 from David Simcha dsim...@yahoo.com 2011-02-15 02:34:01 PST --- Created an attachment (id=912) Statically linked binary -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 5580] [64-bit] String switch statements broken in 64-bit mode
http://d.puremagic.com/issues/show_bug.cgi?id=5580 --- Comment #4 from David Simcha dsim...@yahoo.com 2011-02-15 06:30:28 PST --- My gut feeling is that this is related to Bug 5581, as both invoke calls to memcmp() according to my reading of the disassembly and tracking down of the function calls in the runtime. However, 5581 seems to be reproducible everywhere. If you can't reproduce this, I suggest fixing 5581 first. Once 5581 is fixed, I'll retest this bug on a machine that I was able to reproduce it on and hopefully it will be fixed, too. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 5580] [64-bit] String switch statements broken in 64-bit mode
http://d.puremagic.com/issues/show_bug.cgi?id=5580 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #5 from Walter Bright bugzi...@digitalmars.com 2011-02-15 15:30:18 PST --- I can't reproduce a problem on Ubuntu, and I examined the assembler generated for druntime/src/rt/switch_.d and nothing obviously wrong jumped out at me. One thing you can try on the failing machines is to copy switch_.d into a local directory, compile it with the test case, and verify the failure. Then add some print statements to switch_.d to try and see where it goes wrong. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 5580] [64-bit] String switch statements broken in 64-bit mode
http://d.puremagic.com/issues/show_bug.cgi?id=5580 --- Comment #6 from David Simcha dsim...@yahoo.com 2011-02-15 18:10:56 PST --- Unfortunately this appears to be a Heisenbug. When I put print statements in to figure out what's going on and call the switch statement function manually, it starts working. However, the one hint I did get from mucking around in switch_.d is that replacing the memcmp() call with a manual for loop and recompiling druntime solves the problem. Not sure if this is due to the Heisenbug nature of this thing or if it indicates that the memcmp() call is the culprit. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---