[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