2009-10-30 Paolo Carlini <paolo.carlini@oracle.com>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Oct 2009 13:12:08 +0000 (13:12 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Oct 2009 13:12:08 +0000 (13:12 +0000)
* include/std/type_traits (__is_convertible_simple): Remove.
(__is_convertible_helper): Adjust.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error line numbers.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153743 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/type_traits
libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc

index a59710d..05e2c33 100644 (file)
@@ -1,3 +1,12 @@
+2009-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/type_traits (__is_convertible_simple): Remove.
+       (__is_convertible_helper): Adjust.
+       * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
+       dg-error line numbers.
+       * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+       Likewise.
+
 2009-10-30  Jerry Quinn  <jlquinn@optonline.net>
 
        * libsupc++/tinfo.cc (operator=(const type_info&)): Revert 153734.
index f5666bc..2824638 100644 (file)
@@ -240,34 +240,26 @@ namespace std
     { };
 
   // Relationships between types.
+  template<typename _From, typename _To,
+          bool = (is_void<_From>::value || is_void<_To>::value
+                  || is_function<_To>::value || is_array<_To>::value)>
+    struct __is_convertible_helper
+    { static const bool __value = (is_void<_From>::value
+                                  && is_void<_To>::value); };
+
   template<typename _From, typename _To>
-    struct __is_convertible_simple
+    struct __is_convertible_helper<_From, _To, false>
     : public __sfinae_types
     {
     private:
       static __one __test(_To);
       static __two __test(...);
-      static _From __makeFrom();
-    
+      static typename add_rvalue_reference<_From>::type __makeFrom();
+
     public:
       static const bool __value = sizeof(__test(__makeFrom())) == 1;
     };
 
-  template<typename _From, typename _To,
-          bool = (is_void<_From>::value || is_void<_To>::value
-                  || is_function<_To>::value || is_array<_To>::value)>
-    struct __is_convertible_helper
-    {
-      static const bool __value = (__is_convertible_simple<typename
-                                  add_rvalue_reference<_From>::type,
-                                  _To>::__value);
-    };
-
-  template<typename _From, typename _To>
-    struct __is_convertible_helper<_From, _To, true>
-    { static const bool __value = (is_void<_From>::value
-                                  && is_void<_To>::value); };
-
   // XXX FIXME
   // The C++0x specifications require front-end support, see N2255.
   /// is_convertible
index 5b129e8..9319a48 100644 (file)
@@ -48,8 +48,8 @@ void test01()
 // { dg-error "instantiated from here" "" { target *-*-* } 40 }
 // { dg-error "instantiated from here" "" { target *-*-* } 42 }
 
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 554 }
-// { dg-error "declaration of" "" { target *-*-* } 516 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 546 }
+// { dg-error "declaration of" "" { target *-*-* } 508 }
 
 // { dg-excess-errors "At global scope" }
 // { dg-excess-errors "In instantiation of" }
index fc58ffe..7497767 100644 (file)
@@ -48,8 +48,8 @@ void test01()
 // { dg-error "instantiated from here" "" { target *-*-* } 40 }
 // { dg-error "instantiated from here" "" { target *-*-* } 42 }
 
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 475 }
-// { dg-error "declaration of" "" { target *-*-* } 437 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 467 }
+// { dg-error "declaration of" "" { target *-*-* } 429 }
 
 // { dg-excess-errors "At global scope" }
 // { dg-excess-errors "In instantiation of" }