[Issue 23113] Bug in CTFE initialization of redBlackTree?

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue May 24 06:36:36 UTC 2022


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

duser at neet.fi changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |CTFE
                 CC|                            |duser at neet.fi

--- Comment #1 from duser at neet.fi ---
reduced the example to this:

void main()
{
        {
                Tree tree = Tree(1);
                assert(tree.node is tree.node.self); // ok
        }
        {
                __gshared static Tree tree = Tree(1);
                assert(tree.node is tree.node.self); // fail
        }
}
struct Tree
{
        Node* node;
        this(int)
        {
                node = new Node;
                node.set();
                assert(node.self is node); // ok
        }
}
struct Node
{
        Node* self;
        void set()
        {
                self = &this;
        }
}

"&this" inside a struct in CTFE seems to have a wrong value when converted to
static data (it's correct if you check it with assert in CTFE but not if you
check the value at runtime)

--


More information about the Digitalmars-d-bugs mailing list