[Issue 23440] closure over typesafe variadic or scope array passes safe though leads to stack corruption
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Jun 27 21:31:37 UTC 2023
https://issues.dlang.org/show_bug.cgi?id=23440
--- Comment #5 from Adam D. Ruppe <destructionator at gmail.com> ---
user on the discord posted this which also seems kinda similar
import std;
auto makeClosure(ref int n) @safe
{
return ref () => n;
}
auto escapeClosure() @safe
{
int n = 123;
return makeClosure(n);
}
void clobberStack() @safe
{
ubyte[4096] a;
}
void main() @safe
{
auto dg = escapeClosure();
pragma(msg,typeof(dg));
clobberStack();
assert(dg() == 123); // kaboom
}
--
More information about the Digitalmars-d-bugs
mailing list