http://d.puremagic.com/issues/show_bug.cgi?id=2536

           Summary: ClassInfo.interfaces contains null sub-ClassInfos
           Product: DGCC aka GDC
           Version: 0.24
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: wrong-code
          Severity: blocker
          Priority: P2
         Component: glue layer
        AssignedTo: [email protected]
        ReportedBy: [email protected]


See the following code:
-----
module test;

interface IConduit : InputStream {
}

interface InputStream {}

void main() {
    auto ci = IConduit.classinfo;
    // passes:
    assert(ci.interfaces.length == 1, "length not 1");
    // fails on gdc (but not dmd):
    assert(ci.interfaces[0].classinfo !is null, "value is null");
}
-----
Ubuntu 8.10 x86_64, gdc-4.2 from Ubuntu repository (4.2.4 20080705 (prerelease
gdc 0.25 20080312, using dmd 1.024) (Ubuntu 0.25-4.2.4-3.1)).

Both asserts pass on DMD (v1.024 and v1.038), but the second one fails when
compiled using GDC.

This is with Tango installed, in case it matters.

This causes segfaults in Tango's Buffer.share() (via cast(Buffered) ==>
_d_dynamic_cast ==> _d_isbaseof2) :(


-- 

Reply via email to