digitalmars.D.bugs - [Issue 11817] New: Structs with void initialized fields get initialized anyway
- d-bugmail puremagic.com (43/43) Dec 25 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11817
- d-bugmail puremagic.com (17/17) Dec 25 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11817
https://d.puremagic.com/issues/show_bug.cgi?id=11817 Summary: Structs with void initialized fields get initialized anyway Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bugzilla digitalmars.com 13:38:54 PST --- ----- Code ----- struct S { int a; ubyte[100] b = void; } void test() { S s; s.a = 3; } --------------- The output: enter 068h,0 push ESI push EDI mov ESI,offset FLAT:_D4foo21S6__initZ lea EDI,-068h[EBP] mov ECX,01Ah rep movsd mov dword ptr -068h[EBP],3 pop EDI pop ESI leave ret I.e. the field s.b is initialized. While not pedantically a bug, this substantially interferes with performance tuning. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 25 2013
https://d.puremagic.com/issues/show_bug.cgi?id=11817 Maxim Fomin <maxim maxim-fomin.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maxim maxim-fomin.ru --- Main question is what to do with aggregate members initialized to void. Currently default initialized instances have fields which are zeroed. T.init value is also zeroed, but both behaviors are under question. I think current practice should be reviewed because the issue tends to pop up instantly in NG in bugzilla. Meanwhile, recent discussions: http://d.puremagic.com/issues/show_bug.cgi?id=11331 https://d.puremagic.com/issues/show_bug.cgi?id=10643 -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 25 2013