February 12, 2019
On Tuesday, 12 February 2019 at 20:26:55 UTC, Basile B. wrote:
> ;------- SUB 000000000045119Ch -------; showDmdBadCodegen
> 000000000045119Ch  push rbp
> 000000000045119Dh  mov rbp, rsp
> 00000000004511A0h  mov rdi, qword ptr [rbp+10h] ; ouch 42 is erased here !
> 00000000004511A4h  call 00000000004516FCh
> 00000000004511A9h  pop rbp
> 00000000004511AAh  ret
> ;-------------------------------------

So I take it you file Bugzilla issue, then? ;)
February 12, 2019
On Tuesday, 12 February 2019 at 20:48:04 UTC, Per Nordlöw wrote:
> On Tuesday, 12 February 2019 at 20:26:55 UTC, Basile B. wrote:
>> ;------- SUB 000000000045119Ch -------; showDmdBadCodegen
> So I take it you file Bugzilla issue, then? ;)

Yes i can try to open something. Also since now it's almost sure that it's not the same as 15075 since t doesn't imply parameter passing.
February 12, 2019
On Tuesday, 12 February 2019 at 20:26:55 UTC, Basile B. wrote:
> The bug goes away when S size is over or equal to 33 bytes because in this case the parameter is well copied.

correction: I meant 17, not 33.
February 12, 2019
On Tuesday, 12 February 2019 at 20:48:04 UTC, Per Nordlöw wrote:
> On Tuesday, 12 February 2019 at 20:26:55 UTC, Basile B. wrote:
>> ;------- SUB 000000000045119Ch -------; showDmdBadCodegen
>> 000000000045119Ch  push rbp
>> 000000000045119Dh  mov rbp, rsp
>> 00000000004511A0h  mov rdi, qword ptr [rbp+10h] ; ouch 42 is erased here !
>> 00000000004511A4h  call 00000000004516FCh
>> 00000000004511A9h  pop rbp
>> 00000000004511AAh  ret
>> ;-------------------------------------
>
> So I take it you file Bugzilla issue, then? ;)

https://issues.dlang.org/show_bug.cgi?id=19672
February 12, 2019
On Tuesday, 12 February 2019 at 21:11:47 UTC, Basile B. wrote:
>> So I take it you file Bugzilla issue, then? ;)
>
> https://issues.dlang.org/show_bug.cgi?id=19672

Thanks!
February 12, 2019
On 2/12/2019 7:01 AM, ag0aep6g wrote:
> This one looks like it might be related, but it doesn't seem to be a true duplicate:
> 
> https://issues.dlang.org/show_bug.cgi?id=15075

Related issues can be added to the "See Also" thing on the Bugzilla page.
February 13, 2019
On Tuesday, 12 February 2019 at 21:01:12 UTC, Basile B. wrote:
> On Tuesday, 12 February 2019 at 20:26:55 UTC, Basile B. wrote:
>> The bug goes away when S size is over or equal to 33 bytes because in this case the parameter is well copied.
>
> correction: I meant 17, not 33.

Does this happen for every struct `S`, where

    S.sizeof <= 16

or does

    S.tupleof

play a role aswell?
February 13, 2019
On Wednesday, 13 February 2019 at 09:05:17 UTC, Per Nordlöw wrote:
> On Tuesday, 12 February 2019 at 21:01:12 UTC, Basile B. wrote:
>> On Tuesday, 12 February 2019 at 20:26:55 UTC, Basile B. wrote:
>>> The bug goes away when S size is over or equal to 33 bytes because in this case the parameter is well copied.
>>
>> correction: I meant 17, not 33.
>
> Does this happen for every struct `S`, where
>
>     S.sizeof <= 16
>
> or does
>
>     S.tupleof
>
> play a role aswell?

S.sizeof 9 to 16, only for long and ulong. Order doesn't matter. Tested with other 8-byte types like double, int[2], short[4], ubyte[8], and it works fine. The type of the padding field also doesn't seem to matter.

--
  Simen
February 13, 2019
On Wednesday, 13 February 2019 at 10:10:21 UTC, Simen Kjærås wrote:
> S.sizeof 9 to 16, only for long and ulong. Order doesn't matter. Tested with other 8-byte types like double, int[2], short[4], ubyte[8], and it works fine. The type of the padding field also doesn't seem to matter.

Thanks. Can you add that to the issue?
February 13, 2019
On Wednesday, 13 February 2019 at 07:34:05 UTC, Walter Bright wrote:
> On 2/12/2019 7:01 AM, ag0aep6g wrote:
>> This one looks like it might be related, but it doesn't seem to be a true duplicate:
>> 
>> https://issues.dlang.org/show_bug.cgi?id=15075
>
> Related issues can be added to the "See Also" thing on the Bugzilla page.

Thanks you, Walter.

https://github.com/dlang/dmd/pull/9357