Bug 2536 – ClassInfo.interfaces contains null sub-ClassInfos

Status
RESOLVED
Resolution
DUPLICATE
Severity
blocker
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Linux
Creation time
2008-12-22T08:01:00Z
Last change time
2015-06-09T05:15:14Z
Keywords
wrong-code
Assigned to
dvdfrdmn
Creator
fvbommel

Comments

Comment #0 by fvbommel — 2008-12-22T08:01:43Z
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 ***