http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46313
--- Comment #8 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-09 13:51:39 UTC --- For completeness: The issues reported in comment 0 were all [(a), (b), and (c)] due to same problem: The internal class symbols only encoded the derived-type name. This has been fixed by the commit in comment 5 by including the module name or the procedure name in the vtable. As comment 6 and 7 show, one can carefully craft a test case which will break. To fix: modify get_unique_type_string for those cases - possibly without breaking the ABI for derived-types declared in the declaration part of a module (= common case).