[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