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) :(
Comment #1 by larsivar — 2008-12-22T17:03:03Z
I think this one has been fixed in a later revision? Look in the closed reports.
Comment #2 by fvbommel — 2008-12-22T18:48:41Z
Thanks for that. It does indeed look suspiciously like #1844. So I guess if the version Ubuntu ships is < r212 (which fixed that one) this should be marked as a duplicate of that...
Comment #3 by fvbommel — 2008-12-22T18:57:44Z
Okay, given that the date (20080312) in the version is before r212 was committed this definitely looks like a dupe.
*** This bug has been marked as a duplicate of 1844 ***