// PR c++/48457, Core 1238
// { dg-do compile { target c++11 } }

template<class T>
T&& create();

template<class T, class Arg>
void test() {
  T t(create<Arg>());
  (void) t;
}

void f (void (&)());
void f (void (&&)());

int main() {
  test<void(&)(), void()>();
  test<void(&&)(), void()>();
  // This call should choose the lvalue reference overload.
  // { dg-final { scan-assembler-not "_Z1fOFvvE" } }
  f(create<void()>());
}
