Cryptic bug for DMD v2.087.x

Seb seb at wilzba.ch
Mon Aug 12 12:17:00 UTC 2019


On Monday, 12 August 2019 at 11:47:17 UTC, Peter Jacobs wrote:
> On Monday, 12 August 2019 at 11:30:58 UTC, Nicholas Wilson 
> wrote:
>> On Monday, 12 August 2019 at 11:08:50 UTC, Peter Jacobs wrote:
>>> Nicholas, thank you for looking.  Below is the transcript of 
>>> compiling from within gdb.
>>> [...]
>>>> Program received signal SIGILL, Illegal instruction.
>>> 0x000000000081df07 in xmmload(unsigned int, bool) ()
>>> (gdb) backtrace
>>> #0  0x000000000081df07 in xmmload(unsigned int, bool) ()
>>
>> Thanks, that corresponds to 
>> https://github.com/dlang/dmd/blob/eda232a9f72b482c92cefb27a4321afc0aedbb5c/src/dmd/backend/cgxmm.d#L716-L717.
>>
>> So it would appear that you are trying (apparently 
>> successfully with debug DMD (and LDC(?)) to use `real` with 
>> xmm somehow???
>> I can't really help anymore without a reduced test case.
>
> OK, I will see what I can do about a test case.  Also, I will 
> go looking for places where we* might have used real variables 
> or values.  I can think of the use of PI from the math module, 
> for example.
>
> Cheers,
> Peter J.
>
> * There are a few of us writing various parts of the flow 
> solver code.

FYI DustMite has been created _exactly_ for this purpose. It's 
even bundled with the official DMD releases.

https://github.com/CyberShadow/DustMite/wiki


1) Copy all project sources in fresh directory
2) Run dustmite with a tester to check whether the bug can still 
be observed.
Here:

---
dustmite fresh-dir 'dmd -O (your normal invocation) 2>&1 | grep 
-qF "tym = 14"'
---


More information about the Digitalmars-d mailing list