------- Comment #2 from janus at gcc dot gnu dot org 2010-03-09 09:44 ------- The problem here is that when resolving a polymorphic TBP call, we resolve the call for each member of the CLASS (i.e. the declared type and all its children, cf. 'resolve_class_compcall'). In 'check_class_members' we set the correct type for the passed object. However, this does not work if the passed object is a component, because the ts we set is overridden when the expr is resolved (e.g. in resolve_actual_arglist).
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43291