http://d.puremagic.com/issues/show_bug.cgi?id=9931
--- Comment #10 from John Colvin <john.loughran.col...@gmail.com> 2013-04-17 10:58:11 BST --- (In reply to comment #9) > (In reply to comment #7) > > 0x0000267c <D4test3barFZS4test3Foo+20>: call 0x26a0 <foo> > > 0x00002681 <D4test3barFZS4test3Foo+25>: add $0xc,%esp > > 0x00002684 <D4test3barFZS4test3Foo+28>: mov %eax,%esi // <- EAX is > > trashed > > 0x00002686 <D4test3barFZS4test3Foo+30>: mov -0x4(%ebp),%edi > > 0x00002689 <D4test3barFZS4test3Foo+33>: movsl %ds:(%esi),%es:(%edi) > > 0x0000268a <D4test3barFZS4test3Foo+34>: movsl %ds:(%esi),%es:(%edi) > > 0x0000268b <D4test3barFZS4test3Foo+35>: movsl %ds:(%esi),%es:(%edi) > > You're reading it the wrong way around, at&t is src,des Sorry, my mistake, I misunderstood you. Martin, you are completely correct. Dmd is presuming that the pointer to the struct is returned in eax but foo sets that to 0, as it is entitled to. Hence movs is reading from 0. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------