void setn(int* pn) { *pn = 20; } void test() { int n = 0; auto pn = &n; *pn = 10; assert(n == 10); setn(&n); } static assert({ test(); return true; }()); ---- Output: test.d(3): Error: cannot dereference invalid pointer *pn test.d(11): called from here: setn(& n) test.d(13): called from here: test() test.d(13): called from here: delegate @system bool() { test(); return true; } () test.d(13): Error: static assert (delegate @system bool() { test(); return true; } ()) is not evaluatable at compile time
https://github.com/D-Programming-Language/dmd/commit/eec4830dff9fa5653fb5e261660ea5596269085a https://github.com/D-Programming-Language/dmd/commit/31bbbb39b3f82624ee718a5c64d5f83f8ba3383b