digitalmars.D.bugs - [Issue 21498] New: Functions with delegate parameter overloaded on
- d-bugmail puremagic.com (42/42) Dec 21 2020 https://issues.dlang.org/show_bug.cgi?id=21498
https://issues.dlang.org/show_bug.cgi?id=21498 Issue ID: 21498 Summary: Functions with delegate parameter overloaded on attributes fail miserably Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: qs.il.paperinik gmail.com The offending code is below (you should be able to comment-in nogc using -dip1000). On my Windows machine, the listing compiles and runs seemingly without errors. Note that all attributes including safe are circumvented. For nogc, use -dip1000. On run.dlang.org, running all DMD compilers, only 2.066 correctly points out attribute violation. Since 2.067 the compiler is beigng "killed by signal 11" (whatever that means). LDC segfaults. int functional(int delegate(int) system dg) system { int* p; int x; p = &x; if (auto result = dg(1)) return result; return 0; } int functional(int delegate(int) safe pure nothrow nogc dg) safe pure nothrow /* nogc*/ { return functional(dg); } void main() safe pure nothrow /* nogc*/ { int x = 0; functional(i => x = i); assert(x == 1); } --
Dec 21 2020