Bug 10585 – Structs in unittest / functions shouldn't have frame pointer unless necessary

Status
NEW
Severity
enhancement
Priority
P4
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-07-09T11:21:21Z
Last change time
2024-12-13T18:09:01Z
Keywords
TDPL
Assigned to
No Owner
Creator
hsteoh
Moved to GitHub: dmd#18623 →

Comments

Comment #0 by hsteoh — 2013-07-09T11:21:21Z
CODE: ------snip------ import std.stdio; void listMembers(T)() { writefln("Size of %s is %d", T.stringof, T.sizeof); foreach (field; __traits(allMembers, T)) { writefln("\t%s", field); } } void main() { int y=1; struct S1 { int x; } static struct S2 { int x; bool opEquals() { return true; } } struct S3 { int x; bool opEquals() { return true; } } struct S4 { int x; bool opEquals() { return y==1; } } listMembers!S1(); listMembers!S2(); listMembers!S3(); listMembers!S4(); } ------snip------ OUTPUT: ------snip------ Size of S1 is 4 x Size of S2 is 4 x opEquals Size of S3 is 16 x opEquals this Size of S4 is 16 x opEquals this ------snip------ S3 is identical to S2 (except for the 'static' qualifier); DMD should not insert the frame pointer since it's not needed. According to TDPL, the frame pointer is only inserted where needed.
Comment #1 by robert.schadek — 2024-12-13T18:09:01Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/18623 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB