[Issue 3575] New: CTFE: member structs not initialized correctly
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Dec 5 01:54:26 PST 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3575
Summary: CTFE: member structs not initialized correctly
Product: D
Version: 1.051
Platform: Other
OS/Version: Windows
Status: NEW
Keywords: patch, rejects-valid
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: clugdbug at yahoo.com.au
--- Comment #0 from Don <clugdbug at yahoo.com.au> 2009-12-05 01:54:25 PST ---
This is a couple of cases I missed in my CTFE patches in DMD2.032.
Root cause: defaultInit for a struct is a VarExp, not a StructLiteral. This
needs to be applied recursively. Patch: I've added a recursive
defaultInitAsStructLiteral() to TypeStruct. It needs to be called from two
places in interpret.c.
---------------------------------
struct SwineFlu {
int a; int b;
}
struct Infection {
SwineFlu y;
}
struct IveGotSwineFlu {
Infection x;
int z;
int oink() { return x.y.a+10; }
}
int quarantine() {
IveGotSwineFlu d;
return d.oink();
}
struct Mexico {
Infection x;
int z=2;
int oink() { return z+x.y.b; }
}
int mediafrenzy() {
Mexico m;
return m.oink;
}
static assert( quarantine() == 10);
static assert( mediafrenzy() == 2);
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list