// { dg-do run { target c++11 } }

extern "C" void abort();

template <class T>
auto apply (T t) -> decltype (t())
{
  return t();
}

template <class T>
T f(T t)
{
  T t2 = t;
  if (t != [=]()->T { return t; }())
    abort ();
  if (t != [=] { return t; }())
    abort ();
  if (t != [=] { return t2; }())
    abort ();
  if (t != [&] { return t; }())
    abort ();
  if (t != apply([=]{return t;}))
    abort ();

  int i;
  [&] (int a)                    { return a+i+t; } (0);
  [&] (int a) -> decltype(a)     { return a+i+t; } (0);
  [&] (int a) -> decltype(i)     { return a+i+t; } (0);
  [&] (int a) -> decltype(t)     { return a+i+t; } (0);
  [&] (int a) -> decltype(a+i)   { return a+i+t; } (0);
  [&] (int a) -> decltype(a+t)   { return a+i+t; } (0);
  [&] (int a) -> decltype(i+t)   { return a+i+t; } (0);
  [&] (int a) -> decltype(a+i+t) { return a+i+t; } (0);
}

int main()
{
  f(0xbeef);
}
