blob: 72ea83444c825e5f7a521114a91fabafa7829df3 [file] [log] [blame]
// { dg-do compile { target c++11 } }
struct A { int i; };
// { dg-final { scan-assembler "_Z2f1Ii1AEDTdsfp_fp0_ET0_MS2_T_" } }
template <class T, class U> auto f1 (U u, T U::* p) -> decltype(u.*p) { return u.*p; }
// { dg-final { scan-assembler "_Z2f2Ii1AEDTpmfp_fp0_EPT0_MS2_T_" } }
template <class T, class U> auto f2 (U* u, T U::* p) -> decltype(u->*p) { return u->*p; }
int main()
{
A a = {};
f1(a, &A::i);
f2(&a, &A::i);
}