===================================================================
@@ -0,0 +1,14 @@
+// PR c++/48735
+// { dg-options "-std=c++0x" }
+
+template<class T,
+ class = decltype(T{})
+>
+char f(int);
+
+template<class>
+char (&f(...))[2];
+
+struct ND { ND() = delete; };
+
+static_assert(sizeof(f<ND[1]>(0)) != 1, "Error");
===================================================================
@@ -1,13 +0,0 @@
-// PR c++/48737
-// { dg-options "-std=c++0x" }
-
-template<class T>
-T&& create();
-
-template<class T, class... Args>
-decltype(T{create<Args>()...}, char()) f(int);
-
-template<class, class...>
-char (&f(...))[2];
-
-static_assert(sizeof(f<int[1], int, int>(0)) != 1, "Error");
===================================================================
@@ -1,23 +0,0 @@
-// PR c++/48744
-// { dg-options "-std=c++0x" }
-
-template<class T>
-struct add_rval_ref {
- typedef T&& type;
-};
-
-template<>
-struct add_rval_ref<void> {
- typedef void type;
-};
-
-template<class T>
-typename add_rval_ref<T>::type create();
-
-template<class T, class Arg>
-decltype(T{create<Arg>()}, char()) f(int);
-
-template<class, class>
-char (&f(...))[2];
-
-static_assert(sizeof(f<int, void>(0)) != 1, "Error");