http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10481 This is a regression since 3.2.1, which gave the following diagnostic for B::f(): ice.cc: In member function `void B::f(const A&) const': ice.cc:18: type `A' is not a base type for type `B'