OSDN Git Service

Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / testsuite / 20_util / make_unsigned / requirements / typedefs-1.cc
index b09d3e9..9d96d5b 100644 (file)
@@ -2,12 +2,12 @@
 
 // 2007-05-03  Benjamin Kosnik  <bkoz@redhat.com>
 //
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 // terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
+// Free Software Foundation; either version 3, or (at your option)
 // any later version.
 //
 // This library is distributed in the hope that it will be useful,
@@ -16,9 +16,8 @@
 // GNU General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
 
 #include <type_traits>
 #include <testsuite_hooks.h>
@@ -30,6 +29,7 @@ void test01()
   bool test __attribute__((unused)) = true;
   using std::make_unsigned;
   using std::is_same;
+  using std::is_unsigned;
 
   // Positive tests.
   typedef make_unsigned<const unsigned int>::type      test2_type;
@@ -47,18 +47,16 @@ void test01()
   typedef make_unsigned<const char>::type      test22_type;
   VERIFY( (is_same<test22_type, const unsigned char>::value) );
 
+#ifdef _GLIBCXX_USE_WCHAR_T
   typedef make_unsigned<volatile wchar_t>::type        test23_type;
-  VERIFY( (is_same<test23_type, volatile unsigned wchar_t>::value) );
-
-#if 0
-  // XXX 
-  // When is_unsigned works for floating points types this should pass
-  typedef make_unsigned<volatile float>::type          test24_type;
-  VERIFY( (is_same<test24_type, volatile unsigned int>::value) );
+  VERIFY( (is_same<test23_type, volatile wchar_t>::value) );
 #endif
 
+  // Chapter 48, chapter 20. Smallest rank such that new unsigned type
+  // same size.
   typedef make_unsigned<test_enum>::type       test25_type;
-  VERIFY( (is_same<test25_type, unsigned int>::value) );
+  VERIFY( is_unsigned<test25_type>::value );
+  VERIFY( sizeof(test25_type) == sizeof(test_enum) );
 }
 
 int main()