[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