// Testcase for 'this' mangling // { dg-do compile { target c++11 } } struct B { template U f(); }; struct A { B b; // { dg-final { scan-assembler "_ZN1A1fIiEEDTcldtdtdefpT1b1fIT_EEEv" } } template auto f() -> decltype (b.f()); // { dg-final { scan-assembler "_ZN1A1gIiEEDTcldtptfpT1b1fIT_EEEv" } } template auto g() -> decltype (this->b.f()); // { dg-final { scan-assembler "_ZN1A1hIiEEDTcldtdtdefpT1bsr1B1fIT_EEEv" } } template auto h() -> decltype (b.B::f()); // { dg-final { scan-assembler "_ZN1A1iIiEEDTcldtptfpT1bsr1B1fIT_EEEv" } } template auto i() -> decltype (this->b.B::f()); }; int main() { A a; a.f(); a.g(); a.h(); a.i(); }