Bug 10497 – Opaque structs cannot be dereferenced in pointer to pointer types

Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-06-28T11:06:00Z
Last change time
2015-06-09T05:14:49Z
Keywords
rejects-valid
Assigned to
nobody
Creator
andrej.mitrovich

Comments

Comment #0 by andrej.mitrovich — 2013-06-28T11:06:51Z
----- module test; // opaque type struct S; void main() { S** s; void* ptr; *s = cast(S*)ptr; // pointer assignment, not value assignment } ----- $ dmd test.d > test.d(4): Error: struct test.S unknown size > test.d(4): Error: struct test.S no size yet for forward reference > test.d(4): Error: struct test.S unknown size > test.d(4): Error: struct test.S no size yet for forward reference The size of the structure does not need to be known since what is being assigned is a memory address. It is not a value assign of the struct.
Comment #1 by github-bugzilla — 2013-08-17T23:06:44Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/e4ba50055c42f4b0dc67369dfcffd8a1526c7821 add test cases for issues 10497 and 10793 https://github.com/D-Programming-Language/dmd/commit/7a3dd014165c3710ffc4ed9f375d962be7516152 Merge pull request #2466 from hpohl/10793 add test cases for issues 10497 and 10793