Bug 21696 – DMD 2.095.1 Compilation Crash

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2021-03-10T01:07:38Z
Last change time
2021-03-13T15:26:28Z
Keywords
backend, pull, SIMD
Assigned to
No Owner
Creator
Curtis Spencer

Attachments

IDFilenameSummaryContent-TypeSize
1821crash.dFile that fails to compile.text/x-dsrc156

Comments

Comment #0 by cspencer — 2021-03-10T01:07:38Z
Created attachment 1821 File that fails to compile. Running `dmd crash.d` dies with the following: ``` tym = 0x27 [1] 625427 illegal hardware instruction (core dumped) ``` This example compiles with 2.091.1 but fails with 2.094.1 and 2.095.1.
Comment #1 by dlang-bot — 2021-03-10T05:19:56Z
@TungstenHeart created dlang/dmd pull request #12263 "fix issue 21696 - ice caused by partial extraction of basic ty" fixing this issue: - fix issue 21696 - ice caused by partial extraction of basic ty an assert failed in `xmmstore()` because it was passed a typenext. The fix proposed to extract the most nested type of the tnext chain. https://github.com/dlang/dmd/pull/12263
Comment #2 by bugzilla — 2021-03-10T09:24:33Z
The attachment: void func(double[1][1] stuff = [[1.0]]) { bool myFunc() { if (stuff[]) return true; return false; } myFunc(); }
Comment #3 by bugzilla — 2021-03-10T09:25:31Z
0x27 is a TYarray
Comment #4 by dlang-bot — 2021-03-10T11:13:25Z
dlang/dmd pull request #12263 "fix issue 21696 - ice caused by partial extraction of basic ty" was merged into stable: - 4d5c42d0d4fa239b810cd3412c63ad6e9cffe802 by Basile Burg: fix issue 21696 - ice caused by partial extraction of basic ty an assert failed in `xmmstore()` because it was passed a typenext. The fix proposed is to extract the most nested type of the tnext chain. https://github.com/dlang/dmd/pull/12263
Comment #5 by dlang-bot — 2021-03-13T15:26:28Z
dlang/dmd pull request #12273 "Merge stable" was merged into master: - 69c0a483d7d9148ffb0cad21f7ac426676127813 by Basile Burg: fix issue 21696 - ice caused by partial extraction of basic ty an assert failed in `xmmstore()` because it was passed a typenext. The fix proposed is to extract the most nested type of the tnext chain. https://github.com/dlang/dmd/pull/12273