digitalmars.D.bugs - [Issue 22045] New: Assignment of pointers in union should be safe,
- d-bugmail puremagic.com (47/47) Jun 19 2021 https://issues.dlang.org/show_bug.cgi?id=22045
https://issues.dlang.org/show_bug.cgi?id=22045 Issue ID: 22045 Summary: Assignment of pointers in union should be safe, only pointers access are system Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: lsferreira169 gmail.com This code should successfully compile: void main() safe { union Foo { int a; int* b; } Foo foo; foo.b = new int; } Nothing unsafe here. It worked in DMD 2.065.0 to 2.071.2. More examples: void main() safe { union Foo { int a; int* b; } Foo foo; int* c = (foo.b = new int); } This, however shouldn't compile: void main() safe { union Foo { int a; int* b; } Foo foo; int* c = foo.b; } --
Jun 19 2021