[Issue 215] New: static initialization problem - invalid code, bogus error message
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Jun 21 04:43:17 PDT 2006
http://d.puremagic.com/issues/show_bug.cgi?id=215
Summary: static initialization problem - invalid code, bogus
error message
Product: D
Version: 0.161
Platform: PC
OS/Version: Windows
Status: NEW
Keywords: rejects-valid, wrong-code
Severity: critical
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: h3r3tic at mat.uni.torun.pl
The folowing code:
// tmp11.d:
template Foo() {
template nothing(int i = 0) {
}
int foo = 1;
}
struct Bar {
mixin Foo f;
}
// ----
Causes DMD to output the following error:
tmp11.d(9): struct tmp11.Bar overlapping initialization for struct Bar.foo
Yet this is still nothing compared to:
// ----
template Foo() {
template nothing(int i = 0) {
}
struct Blah {
int foo = 1;
}
Blah blah;
}
struct Bar {
mixin Foo f;
}
void main()
{
Bar y;
printf("%d\n", y.f.blah.foo);
assert (y.f.blah.foo == 1);
}
// ----
Which compiles, and when ran, prints '0' and reports a failed assertion error
:(
--
More information about the Digitalmars-d-bugs
mailing list