// Test to make sure that implicit typename doesn't break name binding rules.
// Special g++ Options: -w
typedef double A;
template<class T> class B {
typedef char A;
};
template<class T> struct X : B<T> {
A a;
};
int main()
{
X<char*> x;
return sizeof (x.a) != sizeof (double);
}