[Issue 9449] Static arrays of 128bit types segfault on initialization. Incorrect calling of memset128ii.
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Aug 31 00:12:10 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=9449
dbr <dbugreporter at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dbugreporter at gmail.com
--- Comment #28 from dbr <dbugreporter at gmail.com> ---
This still segfaults with dmd 2.066 (64-bit linux):
void main() {
float[4][2] m = [[2.0, 1, 3, 4], [2.0, 1, 3, 4]];
}
Dump of assembler code for function _Dmain:
0x000000000041a160 <+0>: push rbp
0x000000000041a161 <+1>: mov rbp,rsp
0x000000000041a164 <+4>: sub rsp,0x40
0x000000000041a168 <+8>: lea rax,[rbp-0x30]
0x000000000041a16c <+12>: movabs rsi,0x2
0x000000000041a176 <+22>: movss xmm0,DWORD PTR [rip+0x183e2] #
0x432560
0x000000000041a17e <+30>: movss DWORD PTR [rbp-0x10],xmm0
0x000000000041a183 <+35>: mov ecx,0x3f800000
0x000000000041a188 <+40>: mov DWORD PTR [rbp-0x40],ecx
0x000000000041a18b <+43>: movss xmm1,DWORD PTR [rbp-0x40]
0x000000000041a190 <+48>: movss DWORD PTR [rbp-0xc],xmm1
0x000000000041a195 <+53>: movss xmm2,DWORD PTR [rip+0x183c7] #
0x432564
0x000000000041a19d <+61>: movss DWORD PTR [rbp-0x8],xmm2
0x000000000041a1a2 <+66>: movss xmm3,DWORD PTR [rip+0x183be] #
0x432568
0x000000000041a1aa <+74>: movss DWORD PTR [rbp-0x4],xmm3
0x000000000041a1af <+79>: lea rdi,[rbp-0x10]
0x000000000041a1b3 <+83>: push QWORD PTR [rdi+0x8]
0x000000000041a1b6 <+86>: push QWORD PTR [rdi]
0x000000000041a1b8 <+88>: mov rdi,rax
0x000000000041a1bb <+91>: call 0x41ad5c <_memset128ii>
0x000000000041a1c0 <+96>: add rsp,0x10
0x000000000041a1c4 <+100>: xor eax,eax
0x000000000041a1c6 <+102>: leave
0x000000000041a1c7 <+103>: ret
--
More information about the Digitalmars-d-bugs
mailing list