[Issue 20655] New: attribute inference accepts unsafe union access as @safe
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Mar 9 22:32:45 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=20655
Issue ID: 20655
Summary: attribute inference accepts unsafe union access as
@safe
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Keywords: safe
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: ag0aep6g at gmail.com
As expected, accessing a union that contains pointers is not @safe:
----
union U
{
string s;
int x;
}
U u;
void f() @safe { auto s = u.s; } /* Error: field U.s cannot access pointers in
@safe code that overlap other fields */
----
But attribute inference accepts it as @safe:
----
union U
{
string s;
int x;
}
U u;
auto f1() { auto s = u.s; } /* Should be inferred as @system. */
void f2()() { auto s = u.s; } /* ditto */
void g() @safe
{
void f3() { auto s = u.s; } /* ditto */
f1(); /* Should be rejected with error "cannot call @system function". */
f2(); /* ditto */
f3(); /* ditto */
}
----
--
More information about the Digitalmars-d-bugs
mailing list