From 4bfebd814d7bffa50f61acab695259c144b12bd7 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Fri, 11 Feb 2011 01:24:35 +0000 Subject: Makefile.am (sources): Add regex.cc. 2011-02-10 Benjamin Kosnik * 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 --- .../testsuite/28_regex/07_traits/char/ctor.cc | 50 -------------------- .../testsuite/28_regex/07_traits/char/isctype.cc | 48 ------------------- .../testsuite/28_regex/07_traits/char/length.cc | 49 ------------------- .../28_regex/07_traits/char/lookup_classname.cc | 54 --------------------- .../28_regex/07_traits/char/lookup_collatename.cc | 50 -------------------- .../testsuite/28_regex/07_traits/char/transform.cc | 51 -------------------- .../28_regex/07_traits/char/transform_primary.cc | 55 ---------------------- .../testsuite/28_regex/07_traits/char/translate.cc | 49 ------------------- .../28_regex/07_traits/char/translate_nocase.cc | 46 ------------------ .../testsuite/28_regex/07_traits/char/value.cc | 49 ------------------- .../testsuite/28_regex/07_traits/wchar_t/ctor.cc | 49 ------------------- .../testsuite/28_regex/07_traits/wchar_t/length.cc | 49 ------------------- .../28_regex/07_traits/wchar_t/transform.cc | 51 -------------------- .../28_regex/07_traits/wchar_t/translate.cc | 49 ------------------- .../28_regex/07_traits/wchar_t/translate_nocase.cc | 46 ------------------ .../testsuite/28_regex/07_traits/wchar_t/value.cc | 49 ------------------- .../testsuite/28_regex/traits/char/ctor.cc | 50 ++++++++++++++++++++ .../testsuite/28_regex/traits/char/isctype.cc | 48 +++++++++++++++++++ .../testsuite/28_regex/traits/char/length.cc | 49 +++++++++++++++++++ .../28_regex/traits/char/lookup_classname.cc | 54 +++++++++++++++++++++ .../28_regex/traits/char/lookup_collatename.cc | 50 ++++++++++++++++++++ .../testsuite/28_regex/traits/char/transform.cc | 51 ++++++++++++++++++++ .../28_regex/traits/char/transform_primary.cc | 55 ++++++++++++++++++++++ .../testsuite/28_regex/traits/char/translate.cc | 49 +++++++++++++++++++ .../28_regex/traits/char/translate_nocase.cc | 46 ++++++++++++++++++ .../testsuite/28_regex/traits/char/value.cc | 49 +++++++++++++++++++ .../testsuite/28_regex/traits/wchar_t/ctor.cc | 49 +++++++++++++++++++ .../testsuite/28_regex/traits/wchar_t/length.cc | 49 +++++++++++++++++++ .../testsuite/28_regex/traits/wchar_t/transform.cc | 51 ++++++++++++++++++++ .../testsuite/28_regex/traits/wchar_t/translate.cc | 49 +++++++++++++++++++ .../28_regex/traits/wchar_t/translate_nocase.cc | 46 ++++++++++++++++++ .../testsuite/28_regex/traits/wchar_t/value.cc | 49 +++++++++++++++++++ 32 files changed, 794 insertions(+), 794 deletions(-) delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/ctor.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/isctype.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/length.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_classname.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_collatename.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/transform.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/transform_primary.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/translate.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/translate_nocase.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/char/value.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/ctor.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/length.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/transform.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/value.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/length.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/transform.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/translate.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/char/value.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc create mode 100644 libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc 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 index 6f5a2f3..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/ctor.cc +++ /dev/null @@ -1,50 +0,0 @@ -// { dg-do link } -// { dg-options "-std=gnu++0x" } - -// 2007-03-12 Stephen M. Webb -// -// 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 -// . - -// [28.7] class template regex_traits - -#include -#include - -// 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 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 index cb8664c..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/isctype.cc +++ /dev/null @@ -1,48 +0,0 @@ -// { dg-do run { xfail *-*-* } } -// { dg-options "-std=c++0x" } - -// -// 2010-06-23 Stephen M. Webb -// -// 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 -// . - -// 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 -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef char CharT; - typedef std::regex_traits 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 index 55406dd..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/length.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// -// 2010-02-17 Stephen M. Webb -// -// 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 -// . - -// 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 -#include - -void -test01() -{ - typedef char CharT; - typedef std::regex_traits 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 index 49ffb51..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_classname.cc +++ /dev/null @@ -1,54 +0,0 @@ -// { dg-do run { xfail *-*-* } } -// { dg-options "-std=c++0x" } - -// -// 2010-06-23 Stephen M. Webb -// -// 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 -// . - -// 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 -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef char CharT; - typedef std::regex_traits 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 index 58eb587..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/lookup_collatename.cc +++ /dev/null @@ -1,50 +0,0 @@ -// { dg-do run { xfail *-*-* } } -// { dg-options "-std=c++0x" } - -// -// 2010-06-23 Stephen M. Webb -// -// 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 -// . - -// 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 -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef char CharT; - typedef std::regex_traits 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 index 1481dcf..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/transform.cc +++ /dev/null @@ -1,51 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// -// 2010-02-17 Stephen M. Webb -// -// 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 -// . - -// 28.3 Requirements [re.req] -// 28.2 (4) Table 127 - Regular expression traits class requirements -// 28.7 Class template regex_traits [re.traits] - -#include -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef char CharT; - typedef std::regex_traits 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 index 7de8904..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/transform_primary.cc +++ /dev/null @@ -1,55 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-02-17 Stephen M. Webb -// -// 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 -// . - -// 28.3 Requirements [re.req] -// 28.2 (4) Table 127 - Regular expression traits class requirements -// 28.7 Class template regex_traits [re.traits] - -#include -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef char CharT; - typedef std::regex_traits 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 index 2dbbba3..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/translate.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg_do run } -// { dg-options "-std=c++0x" } - -// -// 2010-02-17 Stephen M. Webb -// -// 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 -// . - -// 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 -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef char CharT; - - std::regex_traits 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 index 4c963dd..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/translate_nocase.cc +++ /dev/null @@ -1,46 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } - -// 2007-03-12 Stephen M. Webb -// -// 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 -// . - -// [28.7] class template regex_traits (5) translate_nocase - -#include -#include - -// Verifies the workings of the regex_traits translate_nocase function. -void test01() -{ - bool test __attribute__((unused)) = true; - typedef char CharT; - - std::regex_traits 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 index f0535ac..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/char/value.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } - -// 2008-08-11 Stephen M. Webb -// -// 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 -// . - -// [28.7] class template regex_traits value() function - -#include -#include - -// Tests the value() function of the regex_traits class. -void test01() -{ - bool test __attribute__((unused)) = true; - std::regex_traits 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 index 39caf43..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/ctor.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do link } -// { dg-options "-std=gnu++0x" } - -// 2007-03-12 Stephen M. Webb -// -// 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 -// . - -// [28.7] class template regex_traits - -#include -#include - -// Tests default constructor of the regex_traits class. There is only the -// default constructor. -void test01() -{ - typedef std::regex_traits 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 index c3cd7b6..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/length.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// -// 2010-02-17 Stephen M. Webb -// -// 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 -// . - -// 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 -#include - -void -test01() -{ - typedef wchar_t CharT; - typedef std::regex_traits 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 index c1f7af4..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/transform.cc +++ /dev/null @@ -1,51 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// -// 2010-02-17 Stephen M. Webb -// -// 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 -// . - -// 28.3 Requirements [re.req] -// 28.2 (4) Table 127 - Regular expression traits class requirements -// 28.7 Class template regex_traits [re.traits] - -#include -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef wchar_t CharT; - typedef std::regex_traits 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 index 962c381..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// -// 2010-02-17 Stephen M. Webb -// -// 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 -// . - -// 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 -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef wchar_t CharT; - - std::regex_traits 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 index 5602cf0..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc +++ /dev/null @@ -1,46 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } - -// 2007-03-12 Stephen M. Webb -// -// 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 -// . - -// [28.7] class template regex_traits (5) translate_nocase - -#include -#include - -// Verifies the workings of the regex_traits translate_nocase function. -void test01() -{ - bool test __attribute__((unused)) = true; - typedef wchar_t CharT; - - std::regex_traits 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 index f0535ac..0000000 --- a/libstdc++-v3/testsuite/28_regex/07_traits/wchar_t/value.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } - -// 2008-08-11 Stephen M. Webb -// -// 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 -// . - -// [28.7] class template regex_traits value() function - -#include -#include - -// Tests the value() function of the regex_traits class. -void test01() -{ - bool test __attribute__((unused)) = true; - std::regex_traits 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 index 0000000..6f5a2f3 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc @@ -0,0 +1,50 @@ +// { dg-do link } +// { dg-options "-std=gnu++0x" } + +// 2007-03-12 Stephen M. Webb +// +// 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 +// . + +// [28.7] class template regex_traits + +#include +#include + +// 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 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 index 0000000..cb8664c --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc @@ -0,0 +1,48 @@ +// { dg-do run { xfail *-*-* } } +// { dg-options "-std=c++0x" } + +// +// 2010-06-23 Stephen M. Webb +// +// 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 +// . + +// 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 +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits 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 index 0000000..55406dd --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/length.cc @@ -0,0 +1,49 @@ +// { dg-do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb +// +// 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 +// . + +// 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 +#include + +void +test01() +{ + typedef char CharT; + typedef std::regex_traits 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 index 0000000..49ffb51 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc @@ -0,0 +1,54 @@ +// { dg-do run { xfail *-*-* } } +// { dg-options "-std=c++0x" } + +// +// 2010-06-23 Stephen M. Webb +// +// 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 +// . + +// 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 +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits 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 index 0000000..58eb587 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc @@ -0,0 +1,50 @@ +// { dg-do run { xfail *-*-* } } +// { dg-options "-std=c++0x" } + +// +// 2010-06-23 Stephen M. Webb +// +// 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 +// . + +// 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 +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits 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 index 0000000..1481dcf --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/transform.cc @@ -0,0 +1,51 @@ +// { dg-do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb +// +// 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 +// . + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 Class template regex_traits [re.traits] + +#include +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits 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 index 0000000..7de8904 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc @@ -0,0 +1,55 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-02-17 Stephen M. Webb +// +// 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 +// . + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 Class template regex_traits [re.traits] + +#include +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + typedef std::regex_traits 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 index 0000000..2dbbba3 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/translate.cc @@ -0,0 +1,49 @@ +// { dg_do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb +// +// 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 +// . + +// 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 +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + + std::regex_traits 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 index 0000000..4c963dd --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc @@ -0,0 +1,46 @@ +// { dg-do run } +// { dg-options "-std=gnu++0x" } + +// 2007-03-12 Stephen M. Webb +// +// 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 +// . + +// [28.7] class template regex_traits (5) translate_nocase + +#include +#include + +// Verifies the workings of the regex_traits translate_nocase function. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef char CharT; + + std::regex_traits 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 index 0000000..f0535ac --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/char/value.cc @@ -0,0 +1,49 @@ +// { dg-do run } +// { dg-options "-std=gnu++0x" } + +// 2008-08-11 Stephen M. Webb +// +// 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 +// . + +// [28.7] class template regex_traits value() function + +#include +#include + +// Tests the value() function of the regex_traits class. +void test01() +{ + bool test __attribute__((unused)) = true; + std::regex_traits 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 index 0000000..39caf43 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc @@ -0,0 +1,49 @@ +// { dg-do link } +// { dg-options "-std=gnu++0x" } + +// 2007-03-12 Stephen M. Webb +// +// 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 +// . + +// [28.7] class template regex_traits + +#include +#include + +// Tests default constructor of the regex_traits class. There is only the +// default constructor. +void test01() +{ + typedef std::regex_traits 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 index 0000000..c3cd7b6 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc @@ -0,0 +1,49 @@ +// { dg-do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb +// +// 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 +// . + +// 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 +#include + +void +test01() +{ + typedef wchar_t CharT; + typedef std::regex_traits 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 index 0000000..c1f7af4 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc @@ -0,0 +1,51 @@ +// { dg-do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb +// +// 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 +// . + +// 28.3 Requirements [re.req] +// 28.2 (4) Table 127 - Regular expression traits class requirements +// 28.7 Class template regex_traits [re.traits] + +#include +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef wchar_t CharT; + typedef std::regex_traits 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 index 0000000..962c381 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc @@ -0,0 +1,49 @@ +// { dg-do run } +// { dg-options "-std=c++0x" } + +// +// 2010-02-17 Stephen M. Webb +// +// 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 +// . + +// 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 +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef wchar_t CharT; + + std::regex_traits 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 index 0000000..5602cf0 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc @@ -0,0 +1,46 @@ +// { dg-do run } +// { dg-options "-std=gnu++0x" } + +// 2007-03-12 Stephen M. Webb +// +// 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 +// . + +// [28.7] class template regex_traits (5) translate_nocase + +#include +#include + +// Verifies the workings of the regex_traits translate_nocase function. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef wchar_t CharT; + + std::regex_traits 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 index 0000000..f0535ac --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc @@ -0,0 +1,49 @@ +// { dg-do run } +// { dg-options "-std=gnu++0x" } + +// 2008-08-11 Stephen M. Webb +// +// 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 +// . + +// [28.7] class template regex_traits value() function + +#include +#include + +// Tests the value() function of the regex_traits class. +void test01() +{ + bool test __attribute__((unused)) = true; + std::regex_traits 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; +}; -- cgit v1.1