Thread overview
[Issue 20042] __vector CTFE crashes the compiler
Jul 10, 2019
ag0aep6g
Jul 10, 2019
Basile-z
Jul 10, 2019
Dlang Bot
Jul 11, 2019
Dlang Bot
Aug 01, 2019
Dlang Bot
July 10, 2019
https://issues.dlang.org/show_bug.cgi?id=20042

ag0aep6g <ag0aep6g@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice
                 CC|                            |ag0aep6g@gmail.com

--
July 10, 2019
https://issues.dlang.org/show_bug.cgi?id=20042

--- Comment #1 from Basile-z <b2.temp@gmx.com> ---
Is this issue only about the crash or do you mind about the thing being accepted too ?

Preventing the crash is easy an then compiler would output

Error: slice operation `cast(__vector(float[4]))[nanF, nanF, nanF, nanF] =
[1.00000F, 2.00000F, 3.00000F, 4.00000F][0..4]` cannot be evaluated at compile
time
        called from here: `Vec4(cast(__vector(float[4]))[nanF, nanF, nanF,
nanF]).this(i)`

which is accurate. The code to handle this case is not there. Then the issue would become an ER.

--
July 10, 2019
https://issues.dlang.org/show_bug.cgi?id=20042

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
@Basile-z created dlang/dmd pull request #10160 "fix issue 20042 - __vector CTFE crashes the compiler" fixing this issue:

- fix issue 20042 - __vector CTFE crashes the compiler

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

--
July 10, 2019
https://issues.dlang.org/show_bug.cgi?id=20042

--- Comment #3 from thomas.bockman@gmail.com ---
The top priority is to make sure that the compiler doesn't pretend to support operations in CTFE which don't actually work right. So, your proposal is acceptable, and definitely better than delaying action on this bug and 20041.

However, it would be nice if this actually worked, too. Seeing as the runtime in-memory layout of __vector(float[4]) and regular float[4] is identical, I'd hope that the CTFE machinery for the latter could be applied to both fairly easily.

--
July 11, 2019
https://issues.dlang.org/show_bug.cgi?id=20042

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #10160 "fix issue 20042 - __vector CTFE crashes the compiler" was merged into stable:

- cb81e3cb13bae540516636ea294a207c0d4e2ac2 by Basile Burg:
  fix issue 20042 - __vector CTFE crashes the compiler

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

--
August 01, 2019
https://issues.dlang.org/show_bug.cgi?id=20042

--- Comment #5 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #10232 "Merge remote-tracking branch 'upstream/stable' into merge_stable" was merged into master:

- 02df7b345a359ea9109c1aa5f8043c7f5dc7b6d1 by Basile-z:
  fix issue 20042 - __vector CTFE crashes the compiler (#10160)

  fix issue 20042 - __vector CTFE crashes the compiler
  merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>

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

--