summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-16 16:47:47 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-16 16:47:47 +0000
commit66ece44c1c2400aea354efc1c8d9b1512cd3ac37 (patch)
treec6883d3c3349acc7442dcd7e6e9bddbcfa12ee30 /libstdc++-v3/testsuite
parent7a91101f91829fb7075339767fde2fd21dad034d (diff)
downloadgcc-66ece44c1c2400aea354efc1c8d9b1512cd3ac37.tar.gz
2007-05-11 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Add a function to the test code compiled with -ffunction-sections -fdata-sections. * configure: Regenerate. * testsuite/22_locale/ctype/scan/wchar_t/1.cc: Remove _GLIBCXX_USE_WCHAR_T guards as surpufulous. * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Add _GLIBCXX_USE_WCHAR_T guards. * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Same. * testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc: Add. * testsuite/21_strings/char_traits/typedefs/char/1.cc: Move... * testsuite/21_strings/char_traits/requirements/char/typedefs.cc: ...here. * testsuite/21_strings/char_traits/typedefs: Remove. * testsuite/21_strings/char_traits/typedefs/char: Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124772 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r--libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc (renamed from libstdc++-v3/testsuite/21_strings/char_traits/typedefs/char/1.cc)17
-rw-r--r--libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc43
-rw-r--r--libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc6
7 files changed, 65 insertions, 9 deletions
diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
index 43fc33a6fd2..0dea4ca073b 100644
--- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
+++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
@@ -47,8 +47,10 @@ void test01()
typedef make_signed<const char>::type test22_type;
VERIFY( (is_same<test22_type, const signed char>::value) );
+#ifdef _GLIBCXX_USE_WCHAR_T
typedef make_signed<volatile wchar_t>::type test23_type;
VERIFY( (is_same<test23_type, volatile signed wchar_t>::value) );
+#endif
typedef make_signed<test_enum>::type test25_type;
VERIFY( (is_same<test25_type, int>::value) );
diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
index 4dd9bb6e5b6..377d1d17758 100644
--- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
+++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
@@ -47,8 +47,10 @@ void test01()
typedef make_signed<const char>::type test22_type;
VERIFY( (is_same<test22_type, const signed char>::value) );
+#ifdef _GLIBCXX_USE_WCHAR_T
typedef make_signed<volatile wchar_t>::type test23_type;
VERIFY( (is_same<test23_type, volatile signed wchar_t>::value) );
+#endif
typedef make_signed<test_enum>::type test25_type;
VERIFY( (is_same<test25_type, short>::value) );
diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
index e204c55f4fd..1270729bedf 100644
--- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
+++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
@@ -47,8 +47,10 @@ 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) );
+#endif
typedef make_unsigned<test_enum>::type test25_type;
VERIFY( (is_same<test25_type, unsigned int>::value) );
diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
index 5038f81e657..1715d36c44a 100644
--- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
+++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
@@ -47,8 +47,10 @@ 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) );
+#endif
typedef make_unsigned<test_enum>::type test25_type;
VERIFY( (is_same<test25_type, unsigned short>::value) );
diff --git a/libstdc++-v3/testsuite/21_strings/char_traits/typedefs/char/1.cc b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc
index 5373d6a4be3..94b719e9017 100644
--- a/libstdc++-v3/testsuite/21_strings/char_traits/typedefs/char/1.cc
+++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc
@@ -1,7 +1,9 @@
+// dg-do compile
+// dg-options -ansi -pedantic-err
// 2001-02-11 gdr
// Origin: Craig Rodrigues <rodrigc@mediaone.net>
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2007 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
@@ -25,10 +27,17 @@
int main()
{
+ // Check for required typedefs.
+ typedef std::char_traits<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::off_type off_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::state_type state_type;
+
// 21.1.3: char_traits<char>::int_type == int
- // dg-options -ansi -pedantic-err
- std::char_traits<char>::int_type* p = 0;
- int* q __attribute__((unused)) = p; // dg-do compile
+ test_type::int_type* p = 0;
+ int* q __attribute__((unused)) = p;
return 0;
}
diff --git a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc
new file mode 100644
index 00000000000..e788daf8ce4
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc
@@ -0,0 +1,43 @@
+// dg-do compile
+// dg-options -ansi -pedantic-err
+// 2001-02-11 gdr
+// Origin: Craig Rodrigues <rodrigc@mediaone.net>
+
+// Copyright (C) 2001, 2003, 2007 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)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// 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.
+
+// 21.1.2: char_traits typedefs
+
+#include <string>
+
+int main()
+{
+ // Check for required typedefs.
+ typedef std::char_traits<wchar_t> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::off_type off_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::state_type state_type;
+
+ // 21.1.3: char_traits<wchar_t>::int_type == wint_t
+ test_type::int_type* p = 0;
+ wint_t* q __attribute__((unused)) = p;
+
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc b/libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
index a1e41d86b71..dce0d951c4d 100644
--- a/libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
@@ -1,6 +1,6 @@
// 2002-05-10 ghazi
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2007 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
@@ -47,7 +47,6 @@ class gnu_ctype: public std::ctype<char_type> { };
VERIFY(gctype.scan_not((MASK), (STRING), \
(STRING) + traits_type::length(STRING)) == (EXPECTED))
-#ifdef _GLIBCXX_USE_WCHAR_T
// Sanity check scan_is() and scan_not().
void test01()
{
@@ -341,12 +340,9 @@ void test01()
VERIFY_SCAN_NOT (std::ctype_base::upper, p2, p2);
VERIFY_SCAN_NOT (std::ctype_base::xdigit, p2, p2);
}
-#endif
int main()
{
-#ifdef _GLIBCXX_USE_WCHAR_T
test01();
-#endif
return 0;
}