[Issue 19662] x86_64: Different code output when compiling with inline/boundscheck on/off

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Sep 8 20:27:38 UTC 2020


https://issues.dlang.org/show_bug.cgi?id=19662

moonlightsentinel at disroot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |moonlightsentinel at disroot.o
                   |                            |rg
         Resolution|WORKSFORME                  |---

--- Comment #4 from moonlightsentinel at disroot.org ---
The test still fails on current master
(e6a018e22e3040ef0051ab8fe42dc15e1df92019).

Slightly modified test without Phobos and manual output verification:

=========================================================

import core.math : sin;

class ObjHolder
{
    Quaternion rotation;
    Object[int] objs;
}

struct Quaternion
{
    float x, y, z, w;

    static Quaternion fromEulerAngles()
    {
        Quaternion q;

        float sr = sin(1.0f);
        q.w = sr;
        q.x = sr;
        q.y = sr;
        return q;
    }
}

ObjHolder create()
{
    ObjHolder oh = new ObjHolder;

    Object o = new Object;
    oh.objs[0] = o;
    oh.rotation = Quaternion.fromEulerAngles();

    return oh;
}

void main()
{
    ObjHolder oh = create();
    if (!oh.objs[0]) assert(false);
}

===========================================================
> .\generated\windows\debug\64\dmd.exe -m64 -O -release -inline app.d       
> .\app.exe
> echo $LASTEXITCODE
-1073741795

--


More information about the Digitalmars-d-bugs mailing list