// PR c++/49812
// The call should choose the second f because i++ is an int rvalue.

template <class T> void f(const volatile T& t) { t.i; }
template <class T> void f(const T&);

int main()
{
  volatile int i = 0;
  f(i++);
}
