1 // RUN: %clang_cc1 -std=c++11 -x c++-header %s -emit-pch -o %t.pch 2 // RUN: %clang_cc1 -std=c++11 -x c++ /dev/null -include-pch %t.pch 3 class move_only { move_only(const move_only&) = delete; move_only(move_only&&); }; 4 struct sb { 5 move_only il; 6 sb(); 7 sb(sb &&); 8 }; 9 10 template<typename T> T make(); doit(decltype(T (make<const T &> ())) *)11template<typename T> void doit(decltype(T(make<const T&>()))*) { T(make<const T&>()); } doit(...)12template<typename T> void doit(...) { T(make<T&&>()); } later()13template<typename T> void later() { doit<T>(0); } 14 fn1()15void fn1() { 16 sb x; 17 later<sb>(); 18 } 19