Makefile.am (sources): Add regex.cc.
authorBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 11 Feb 2011 01:24:35 +0000 (01:24 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 11 Feb 2011 01:24:35 +0000 (01:24 +0000)
2011-02-10  Benjamin Kosnik  <bkoz@redhat.com>

* src/Makefile.am (sources): Add regex.cc.
* src/Makefile.in: Regenerate.
* src/regex.cc: New.
* include/bits/regex_error.h (error_type): Use constexpr.
(regex_error): Move ctor and dtor out of line.

* testsuite/28_regex/03_requirements: To...
* testsuite/28_regex/requirements: ... this.
* testsuite/28_regex/04_header: To...
* testsuite/28_regex/headers: ... this.
* testsuite/28_regex/05_constants: To...
* testsuite/28_regex/constants: ... this.
* testsuite/28_regex/06_exception_type: To...
* testsuite/28_regex/regex_error: ... this.
* testsuite/28_regex/07_traits: To...
* testsuite/28_regex/traits: ... this.
* testsuite/28_regex/08_basic_regex: To...
* testsuite/28_regex/basic_regex: ... this.
* testsuite/28_regex/09_sub_match: To...
* testsuite/28_regex/sub_match: ... this.
* testsuite/28_regex/10_match_results: To...
* testsuite/28_regex/match_results: ... this.
* testsuite/28_regex/11_algorithms: To...
* testsuite/28_regex/algorithms: ... this.
* testsuite/28_regex/12_iterators: To...
* testsuite/28_regex/iterators: ... this.

From-SVN: r170039

32 files changed:
libstdc++-v3/testsuite/28_regex/07_traits/char/ctor.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/isctype.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/length.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_classname.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_collatename.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/transform.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/transform_primary.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/translate.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/translate_nocase.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/char/value.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/ctor.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/length.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/transform.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc [deleted file]
libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/value.cc [deleted file]
libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/length.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/transform.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/translate.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/char/value.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc [new file with mode: 0644]

diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/ctor.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/ctor.cc
deleted file mode 100644 (file)
index 6f5a2f3..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// { dg-do link }
-// { dg-options "-std=gnu++0x" }
-
-// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// [28.7] class template regex_traits
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-// Tests default constructor of the regex_traits class.  There is only the
-// default constructor.
-void test01()
-{
-       bool test __attribute__((unused)) = true;
-  typedef std::regex_traits<char> test_type;
-
-  // required default constructor
-  test_type t;
-  
-  // Check for required typedefs
-  typedef test_type::char_type       char_type;
-  typedef test_type::string_type     string_type;
-  typedef test_type::locale_type     locale_type;
-  typedef test_type::char_class_type char_class_type;
-}
-
-int
-main()
-{ 
-  test01();
-  return 0;
-};
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/isctype.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/isctype.cc
deleted file mode 100644 (file)
index cb8664c..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// { dg-do run { xfail *-*-* } }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-06-23  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2(4) Table 127 - Regular expression traits class requirements
-// 28.7(11) Class template regex_traits [re.traits]
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef char CharT;
-  typedef std::regex_traits<CharT> traits;
-
-       char name[] = "lower";
-       traits t;
-
-       VERIFY( t.isctype('e',  t.lookup_classname(name, name+sizeof(name)-1)) );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/length.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/length.cc
deleted file mode 100644 (file)
index 55406dd..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 Class template regex_traits [re.traits]
-// 28.7 (3) static std::size_t length(const char_type* p);
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  typedef char CharT;
-  typedef std::regex_traits<CharT> traits;
-  bool test __attribute__((unused)) = true;
-  const CharT* p = "";
-
-       std::size_t i = traits::length(p);
-
-       VERIFY( i == 0 );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_classname.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_classname.cc
deleted file mode 100644 (file)
index 49ffb51..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// { dg-do run { xfail *-*-* } }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-06-23  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2(4) Table 127 - Regular expression traits class requirements
-// 28.7(9) Class template regex_traits [re.traits]
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef char CharT;
-  typedef std::regex_traits<CharT> traits;
-
-       char n1[] = "lower";
-       char n2[] = "alpha";
-       traits t;
-
-  traits::char_class_type c1 = t.lookup_classname(n1, n1+sizeof(n1)-1);
-  VERIFY( c1 != 0 );
-
-  traits::char_class_type c2 = t.lookup_classname(n1, n1+sizeof(n1)-1, true);
-  traits::char_class_type c3 = t.lookup_classname(n2, n2+sizeof(n2)-1, true);
-       VERIFY( c2 == c3 );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_collatename.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_collatename.cc
deleted file mode 100644 (file)
index 58eb587..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// { dg-do run { xfail *-*-* } }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-06-23  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 (8) Class template regex_traits [re.traits]
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef char CharT;
-  typedef std::regex_traits<CharT> traits;
-
-       char name[] = "ll";
-       traits t;
-
-       traits::string_type sname = t.lookup_collatename(name, name+sizeof(name)-1);
-
-  VERIFY( !sname.empty() );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/transform.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/transform.cc
deleted file mode 100644 (file)
index 1481dcf..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 Class template regex_traits [re.traits]
-
-#include <regex>
-#include <string>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef char CharT;
-  typedef std::regex_traits<CharT> traits;
-
-       traits t;
-       traits::string_type G = "abc";
-       traits::string_type H = "def";
-
-  VERIFY( G < H );
-  VERIFY( t.transform(G.begin(), G.end()) < t.transform(H.begin(), H.end()) );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/transform_primary.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/transform_primary.cc
deleted file mode 100644 (file)
index 7de8904..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-do run { xfail *-*-* } }
-
-//
-// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 Class template regex_traits [re.traits]
-
-#include <regex>
-#include <string>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef char CharT;
-  typedef std::regex_traits<CharT> traits;
-
-       traits t;
-       traits::string_type G = "abc";
-       traits::string_type H = "def";
-       traits::string_type J = "ABC";
-
-  VERIFY( G < H );
-  VERIFY( t.transform_primary(G.begin(), G.end()) < t.transform_primary(H.begin(), H.end()) ); 
-
-  VERIFY( G == H );
-  VERIFY( t.transform_primary(G.begin(), G.end()) == t.transform_primary(J.begin(), J.end()) );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/translate.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/translate.cc
deleted file mode 100644 (file)
index 2dbbba3..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// { dg_do run }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 Class template regex_traits [re.traits]
-// 28.7 (3) static std::size_t length(const char_type* p);
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef char CharT;
-
-  std::regex_traits<CharT> t;
-  CharT c = 'a';
-  CharT d = 'a';
-
-  VERIFY( t.translate(c) == t.translate(d) );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/translate_nocase.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/translate_nocase.cc
deleted file mode 100644 (file)
index 4c963dd..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=gnu++0x" }
-
-// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// [28.7] class template regex_traits (5) translate_nocase
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-// Verifies the workings of the regex_traits translate_nocase function.
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef char CharT;
-
-  std::regex_traits<CharT> t;
-  CharT c = 'a';
-  CharT C = 'A';
-
-  VERIFY( t.translate_nocase(c) == t.translate_nocase(C) );
-}
-
-int
-main()
-{ 
-  test01();
-  return 0;
-};
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/char/value.cc b/libstdc++-v3/testsuite/28_regex/07_traits/char/value.cc
deleted file mode 100644 (file)
index f0535ac..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=gnu++0x" }
-
-// 2008-08-11  Stephen M. Webb  <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// [28.7] class template regex_traits value() function
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-// Tests the value() function of the regex_traits<char> class.
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  std::regex_traits<char> t;
-  VERIFY( t.value('7', 8)  == 7 );
-  VERIFY( t.value('7', 10) == 7 );
-  VERIFY( t.value('7', 16) == 7 );
-  VERIFY( t.value('9', 8)  == -1 );
-  VERIFY( t.value('9', 10) == 9 );
-  VERIFY( t.value('9', 16) == 9 );
-  VERIFY( t.value('d', 8)  == -1 );
-  VERIFY( t.value('d', 10) == -1 );
-  VERIFY( t.value('d', 16) == 13 );
-}
-
-int
-main()
-{ 
-  test01();
-  return 0;
-};
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/ctor.cc b/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/ctor.cc
deleted file mode 100644 (file)
index 39caf43..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// { dg-do link }
-// { dg-options "-std=gnu++0x" }
-
-// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// [28.7] class template regex_traits
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-// Tests default constructor of the regex_traits class.  There is only the
-// default constructor.
-void test01()
-{
-  typedef std::regex_traits<wchar_t> test_type;
-
-  // required default constructor
-  test_type t;
-  
-  // Check for required typedefs
-  typedef test_type::char_type       char_type;
-  typedef test_type::string_type     string_type;
-  typedef test_type::locale_type     locale_type;
-  typedef test_type::char_class_type char_class_type;
-}
-
-int
-main()
-{ 
-  test01();
-  return 0;
-};
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/length.cc b/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/length.cc
deleted file mode 100644 (file)
index c3cd7b6..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 Class template regex_traits [re.traits]
-// 28.7 (3) static std::size_t length(const char_type* p);
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  typedef wchar_t CharT;
-  typedef std::regex_traits<CharT> traits;
-  bool test __attribute__((unused)) = true;
-  const CharT* p = L"";
-
-       std::size_t i = traits::length(p);
-
-       VERIFY( i == 0 );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/transform.cc b/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/transform.cc
deleted file mode 100644 (file)
index c1f7af4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 Class template regex_traits [re.traits]
-
-#include <regex>
-#include <string>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef wchar_t CharT;
-  typedef std::regex_traits<CharT> traits;
-
-       traits t;
-       traits::string_type G = L"abc";
-       traits::string_type H = L"def";
-
-  VERIFY( G < H );
-  VERIFY( t.transform(G.begin(), G.end()) < t.transform(H.begin(), H.end()) );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate.cc b/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate.cc
deleted file mode 100644 (file)
index 962c381..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=c++0x" }
-
-//
-// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 28.3 Requirements [re.req]
-// 28.2 (4) Table 127 - Regular expression traits class requirements
-// 28.7 Class template regex_traits [re.traits]
-// 28.7 (3) static std::size_t length(const char_type* p);
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef wchar_t CharT;
-
-  std::regex_traits<CharT> t;
-  CharT c = L'a';
-  CharT d = L'a';
-
-  VERIFY( t.translate(c) == t.translate(d) );
-}
-
-int main()
-{
-       test01();
-       return 0;
-}
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc b/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc
deleted file mode 100644 (file)
index 5602cf0..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=gnu++0x" }
-
-// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// [28.7] class template regex_traits (5) translate_nocase
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-// Verifies the workings of the regex_traits translate_nocase function.
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  typedef wchar_t CharT;
-
-  std::regex_traits<CharT> t;
-  CharT c = L'a';
-  CharT C = L'A';
-
-  VERIFY( t.translate_nocase(c) == t.translate_nocase(C) );
-}
-
-int
-main()
-{ 
-  test01();
-  return 0;
-};
diff --git a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/value.cc b/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/value.cc
deleted file mode 100644 (file)
index f0535ac..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// { dg-do run }
-// { dg-options "-std=gnu++0x" }
-
-// 2008-08-11  Stephen M. Webb  <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// [28.7] class template regex_traits value() function
-
-#include <regex>
-#include <testsuite_hooks.h>
-
-// Tests the value() function of the regex_traits<char> class.
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  std::regex_traits<char> t;
-  VERIFY( t.value('7', 8)  == 7 );
-  VERIFY( t.value('7', 10) == 7 );
-  VERIFY( t.value('7', 16) == 7 );
-  VERIFY( t.value('9', 8)  == -1 );
-  VERIFY( t.value('9', 10) == 9 );
-  VERIFY( t.value('9', 16) == 9 );
-  VERIFY( t.value('d', 8)  == -1 );
-  VERIFY( t.value('d', 10) == -1 );
-  VERIFY( t.value('d', 16) == 13 );
-}
-
-int
-main()
-{ 
-  test01();
-  return 0;
-};
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc b/libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc
new file mode 100644 (file)
index 0000000..6f5a2f3
--- /dev/null
@@ -0,0 +1,50 @@
+// { dg-do link }
+// { dg-options "-std=gnu++0x" }
+
+// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// [28.7] class template regex_traits
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+// Tests default constructor of the regex_traits class.  There is only the
+// default constructor.
+void test01()
+{
+       bool test __attribute__((unused)) = true;
+  typedef std::regex_traits<char> test_type;
+
+  // required default constructor
+  test_type t;
+  
+  // Check for required typedefs
+  typedef test_type::char_type       char_type;
+  typedef test_type::string_type     string_type;
+  typedef test_type::locale_type     locale_type;
+  typedef test_type::char_class_type char_class_type;
+}
+
+int
+main()
+{ 
+  test01();
+  return 0;
+};
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
new file mode 100644 (file)
index 0000000..cb8664c
--- /dev/null
@@ -0,0 +1,48 @@
+// { dg-do run { xfail *-*-* } }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-06-23  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2(4) Table 127 - Regular expression traits class requirements
+// 28.7(11) Class template regex_traits [re.traits]
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef char CharT;
+  typedef std::regex_traits<CharT> traits;
+
+       char name[] = "lower";
+       traits t;
+
+       VERIFY( t.isctype('e',  t.lookup_classname(name, name+sizeof(name)-1)) );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/length.cc b/libstdc++-v3/testsuite/28_regex/traits/char/length.cc
new file mode 100644 (file)
index 0000000..55406dd
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do run }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 Class template regex_traits [re.traits]
+// 28.7 (3) static std::size_t length(const char_type* p);
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  typedef char CharT;
+  typedef std::regex_traits<CharT> traits;
+  bool test __attribute__((unused)) = true;
+  const CharT* p = "";
+
+       std::size_t i = traits::length(p);
+
+       VERIFY( i == 0 );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
new file mode 100644 (file)
index 0000000..49ffb51
--- /dev/null
@@ -0,0 +1,54 @@
+// { dg-do run { xfail *-*-* } }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-06-23  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2(4) Table 127 - Regular expression traits class requirements
+// 28.7(9) Class template regex_traits [re.traits]
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef char CharT;
+  typedef std::regex_traits<CharT> traits;
+
+       char n1[] = "lower";
+       char n2[] = "alpha";
+       traits t;
+
+  traits::char_class_type c1 = t.lookup_classname(n1, n1+sizeof(n1)-1);
+  VERIFY( c1 != 0 );
+
+  traits::char_class_type c2 = t.lookup_classname(n1, n1+sizeof(n1)-1, true);
+  traits::char_class_type c3 = t.lookup_classname(n2, n2+sizeof(n2)-1, true);
+       VERIFY( c2 == c3 );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
new file mode 100644 (file)
index 0000000..58eb587
--- /dev/null
@@ -0,0 +1,50 @@
+// { dg-do run { xfail *-*-* } }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-06-23  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 (8) Class template regex_traits [re.traits]
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef char CharT;
+  typedef std::regex_traits<CharT> traits;
+
+       char name[] = "ll";
+       traits t;
+
+       traits::string_type sname = t.lookup_collatename(name, name+sizeof(name)-1);
+
+  VERIFY( !sname.empty() );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/transform.cc b/libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
new file mode 100644 (file)
index 0000000..1481dcf
--- /dev/null
@@ -0,0 +1,51 @@
+// { dg-do run }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 Class template regex_traits [re.traits]
+
+#include <regex>
+#include <string>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef char CharT;
+  typedef std::regex_traits<CharT> traits;
+
+       traits t;
+       traits::string_type G = "abc";
+       traits::string_type H = "def";
+
+  VERIFY( G < H );
+  VERIFY( t.transform(G.begin(), G.end()) < t.transform(H.begin(), H.end()) );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc b/libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
new file mode 100644 (file)
index 0000000..7de8904
--- /dev/null
@@ -0,0 +1,55 @@
+// { dg-options "-std=c++0x" }
+// { dg-do run { xfail *-*-* } }
+
+//
+// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 Class template regex_traits [re.traits]
+
+#include <regex>
+#include <string>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef char CharT;
+  typedef std::regex_traits<CharT> traits;
+
+       traits t;
+       traits::string_type G = "abc";
+       traits::string_type H = "def";
+       traits::string_type J = "ABC";
+
+  VERIFY( G < H );
+  VERIFY( t.transform_primary(G.begin(), G.end()) < t.transform_primary(H.begin(), H.end()) ); 
+
+  VERIFY( G == H );
+  VERIFY( t.transform_primary(G.begin(), G.end()) == t.transform_primary(J.begin(), J.end()) );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/translate.cc b/libstdc++-v3/testsuite/28_regex/traits/char/translate.cc
new file mode 100644 (file)
index 0000000..2dbbba3
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg_do run }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 Class template regex_traits [re.traits]
+// 28.7 (3) static std::size_t length(const char_type* p);
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef char CharT;
+
+  std::regex_traits<CharT> t;
+  CharT c = 'a';
+  CharT d = 'a';
+
+  VERIFY( t.translate(c) == t.translate(d) );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc b/libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc
new file mode 100644 (file)
index 0000000..4c963dd
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do run }
+// { dg-options "-std=gnu++0x" }
+
+// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// [28.7] class template regex_traits (5) translate_nocase
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+// Verifies the workings of the regex_traits translate_nocase function.
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef char CharT;
+
+  std::regex_traits<CharT> t;
+  CharT c = 'a';
+  CharT C = 'A';
+
+  VERIFY( t.translate_nocase(c) == t.translate_nocase(C) );
+}
+
+int
+main()
+{ 
+  test01();
+  return 0;
+};
diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/value.cc b/libstdc++-v3/testsuite/28_regex/traits/char/value.cc
new file mode 100644 (file)
index 0000000..f0535ac
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do run }
+// { dg-options "-std=gnu++0x" }
+
+// 2008-08-11  Stephen M. Webb  <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// [28.7] class template regex_traits value() function
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+// Tests the value() function of the regex_traits<char> class.
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  std::regex_traits<char> t;
+  VERIFY( t.value('7', 8)  == 7 );
+  VERIFY( t.value('7', 10) == 7 );
+  VERIFY( t.value('7', 16) == 7 );
+  VERIFY( t.value('9', 8)  == -1 );
+  VERIFY( t.value('9', 10) == 9 );
+  VERIFY( t.value('9', 16) == 9 );
+  VERIFY( t.value('d', 8)  == -1 );
+  VERIFY( t.value('d', 10) == -1 );
+  VERIFY( t.value('d', 16) == 13 );
+}
+
+int
+main()
+{ 
+  test01();
+  return 0;
+};
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
new file mode 100644 (file)
index 0000000..39caf43
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do link }
+// { dg-options "-std=gnu++0x" }
+
+// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// [28.7] class template regex_traits
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+// Tests default constructor of the regex_traits class.  There is only the
+// default constructor.
+void test01()
+{
+  typedef std::regex_traits<wchar_t> test_type;
+
+  // required default constructor
+  test_type t;
+  
+  // Check for required typedefs
+  typedef test_type::char_type       char_type;
+  typedef test_type::string_type     string_type;
+  typedef test_type::locale_type     locale_type;
+  typedef test_type::char_class_type char_class_type;
+}
+
+int
+main()
+{ 
+  test01();
+  return 0;
+};
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
new file mode 100644 (file)
index 0000000..c3cd7b6
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do run }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 Class template regex_traits [re.traits]
+// 28.7 (3) static std::size_t length(const char_type* p);
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  typedef wchar_t CharT;
+  typedef std::regex_traits<CharT> traits;
+  bool test __attribute__((unused)) = true;
+  const CharT* p = L"";
+
+       std::size_t i = traits::length(p);
+
+       VERIFY( i == 0 );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
new file mode 100644 (file)
index 0000000..c1f7af4
--- /dev/null
@@ -0,0 +1,51 @@
+// { dg-do run }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 Class template regex_traits [re.traits]
+
+#include <regex>
+#include <string>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef wchar_t CharT;
+  typedef std::regex_traits<CharT> traits;
+
+       traits t;
+       traits::string_type G = L"abc";
+       traits::string_type H = L"def";
+
+  VERIFY( G < H );
+  VERIFY( t.transform(G.begin(), G.end()) < t.transform(H.begin(), H.end()) );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc
new file mode 100644 (file)
index 0000000..962c381
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do run }
+// { dg-options "-std=c++0x" }
+
+//
+// 2010-02-17  Stephen M. Webb <stephen.webb@bregmasoft.ca>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.3 Requirements [re.req]
+// 28.2 (4) Table 127 - Regular expression traits class requirements
+// 28.7 Class template regex_traits [re.traits]
+// 28.7 (3) static std::size_t length(const char_type* p);
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef wchar_t CharT;
+
+  std::regex_traits<CharT> t;
+  CharT c = L'a';
+  CharT d = L'a';
+
+  VERIFY( t.translate(c) == t.translate(d) );
+}
+
+int main()
+{
+       test01();
+       return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc
new file mode 100644 (file)
index 0000000..5602cf0
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do run }
+// { dg-options "-std=gnu++0x" }
+
+// 2007-03-12  Stephen M. Webb  <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// [28.7] class template regex_traits (5) translate_nocase
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+// Verifies the workings of the regex_traits translate_nocase function.
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  typedef wchar_t CharT;
+
+  std::regex_traits<CharT> t;
+  CharT c = L'a';
+  CharT C = L'A';
+
+  VERIFY( t.translate_nocase(c) == t.translate_nocase(C) );
+}
+
+int
+main()
+{ 
+  test01();
+  return 0;
+};
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc
new file mode 100644 (file)
index 0000000..f0535ac
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do run }
+// { dg-options "-std=gnu++0x" }
+
+// 2008-08-11  Stephen M. Webb  <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2010 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 3, 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 COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// [28.7] class template regex_traits value() function
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+// Tests the value() function of the regex_traits<char> class.
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  std::regex_traits<char> t;
+  VERIFY( t.value('7', 8)  == 7 );
+  VERIFY( t.value('7', 10) == 7 );
+  VERIFY( t.value('7', 16) == 7 );
+  VERIFY( t.value('9', 8)  == -1 );
+  VERIFY( t.value('9', 10) == 9 );
+  VERIFY( t.value('9', 16) == 9 );
+  VERIFY( t.value('d', 8)  == -1 );
+  VERIFY( t.value('d', 10) == -1 );
+  VERIFY( t.value('d', 16) == 13 );
+}
+
+int
+main()
+{ 
+  test01();
+  return 0;
+};