// RUN: %clang_cc1 -std=c++11 %s -verify
// expected-no-diagnostics
struct A { void f(); };
struct C { void f(); };
struct B : A { typedef A X; };
struct D : C { typedef C X; void g(); };
void D::g()
{
B * b = new B;
b->X::f(); // lookup for X finds B::X
}
typedef int X;
void h(void)
{
B * b = new B;
b->X::f(); // lookup for X finds B::X
}