From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- .../28_regex/basic_regex/assign/char/cstring.cc | 44 +++++++++++++ .../28_regex/basic_regex/assign/char/cstring_op.cc | 43 +++++++++++++ .../28_regex/basic_regex/assign/char/moveable.cc | 50 +++++++++++++++ .../28_regex/basic_regex/assign/char/pstring.cc | 43 +++++++++++++ .../28_regex/basic_regex/assign/char/range.cc | 43 +++++++++++++ .../28_regex/basic_regex/assign/char/string.cc | 44 +++++++++++++ .../28_regex/basic_regex/assign/char/string_op.cc | 44 +++++++++++++ .../28_regex/basic_regex/assign/wchar_t/cstring.cc | 44 +++++++++++++ .../basic_regex/assign/wchar_t/cstring_op.cc | 44 +++++++++++++ .../28_regex/basic_regex/assign/wchar_t/pstring.cc | 43 +++++++++++++ .../28_regex/basic_regex/assign/wchar_t/range.cc | 44 +++++++++++++ .../28_regex/basic_regex/assign/wchar_t/string.cc | 45 +++++++++++++ .../basic_regex/assign/wchar_t/string_op.cc | 45 +++++++++++++ .../testsuite/28_regex/basic_regex/ctors/47724.cc | 34 ++++++++++ .../28_regex/basic_regex/ctors/basic/cstring.cc | 37 +++++++++++ .../basic_regex/ctors/basic/pstring_char.cc | 42 +++++++++++++ .../basic_regex/ctors/basic/pstring_wchar_t.cc | 44 +++++++++++++ .../ctors/basic/string_range_01_02_03.cc | 51 +++++++++++++++ .../28_regex/basic_regex/ctors/char/cstring.cc | 42 +++++++++++++ .../28_regex/basic_regex/ctors/char/cstring_awk.cc | 37 +++++++++++ .../basic_regex/ctors/char/cstring_ecma.cc | 37 +++++++++++ .../basic_regex/ctors/char/cstring_egrep.cc | 37 +++++++++++ .../basic_regex/ctors/char/cstring_grep.cc | 39 ++++++++++++ .../28_regex/basic_regex/ctors/char/default.cc | 47 ++++++++++++++ .../28_regex/basic_regex/ctors/char/range.cc | 42 +++++++++++++ .../28_regex/basic_regex/ctors/copy_char.cc | 45 +++++++++++++ .../28_regex/basic_regex/ctors/extended/cstring.cc | 43 +++++++++++++ .../ctors/extended/string_range_01_02_03.cc | 51 +++++++++++++++ .../28_regex/basic_regex/ctors/move_char.cc | 49 +++++++++++++++ .../28_regex/basic_regex/ctors/string_char.cc | 54 ++++++++++++++++ .../28_regex/basic_regex/ctors/string_wchar_t.cc | 56 +++++++++++++++++ .../28_regex/basic_regex/ctors/wchar_t/cstring.cc | 43 +++++++++++++ .../28_regex/basic_regex/ctors/wchar_t/default.cc | 48 ++++++++++++++ .../28_regex/basic_regex/ctors/wchar_t/range.cc | 43 +++++++++++++ .../testsuite/28_regex/basic_regex/regex.cc | 37 +++++++++++ .../basic_regex/requirements/constexpr_data.cc | 73 ++++++++++++++++++++++ 36 files changed, 1607 insertions(+) create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/regex.cc create mode 100644 libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc (limited to 'libstdc++-v3/testsuite/28_regex/basic_regex') diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc new file mode 100644 index 000000000..1552818e9 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc @@ -0,0 +1,44 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2009-06-05 Stephen M. Webb +// +// Copyright (C) 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 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 +// . + +// C++0X [28.8.3] class template basic_regex assign() + +#include +#include + +// Tests assign operation from a C-style null-terminated-string. +void test01() +{ + bool test __attribute__((unused)) = true; + + std::basic_regex re; + + const char* cs = "aab"; + re.assign(cs); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc new file mode 100644 index 000000000..12353023b --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include + +// Tests basic_regex assign operator from a C-style null-terminated-string. +void test01() +{ + typedef std::basic_regex test_type; + + const char* cs = "aab"; + test_type re; + re = cs; +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc new file mode 100644 index 000000000..64f5bcac5 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc @@ -0,0 +1,50 @@ +// { dg-options "-std=gnu++0x" } + +// 2010-07-07 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.8.3](9-11) class template basic_regex assign + +#include +#include +#include + +// Tests assign operator of the basic_regex class for moveable rvalues. +void test01() +{ + bool test __attribute__((unused)) = true; + + std::regex src_re("aaba"); + const unsigned mark_count = src_re.mark_count(); + const std::regex::flag_type flags = src_re.flags(); + + std::regex target_re; + + target_re.assign(std::move(src_re)); + + VERIFY( target_re.flags() == flags ); + VERIFY( target_re.mark_count() == mark_count ); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc new file mode 100644 index 000000000..398b66c60 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include + +// Tests assign operation from a Pascal-style counted-string. +void test01() +{ + typedef std::basic_regex test_type; + + const char cs[] = "aab"; + test_type re; + re.assign(cs, sizeof(cs)-1, std::regex_constants::basic); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc new file mode 100644 index 000000000..cd741d5ff --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include + +// Tests range assign of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + + char s[] = "a+b|c"; + test_type re; + re.assign(s, s + 5); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc new file mode 100644 index 000000000..afa071eb3 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc @@ -0,0 +1,44 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include +#include + +// Tests C++ string assignment of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + + std::string s("a*b"); + test_type re; + re.assign(s); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc new file mode 100644 index 000000000..724872dec --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc @@ -0,0 +1,44 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include +#include + +// Tests basic_regex assignment operator from a C++ string; +void test01() +{ + typedef std::basic_regex test_type; + + std::string s("a*b"); + test_type re; + re = s; +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc new file mode 100644 index 000000000..20ccab012 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc @@ -0,0 +1,44 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include + +// Tests assign operation from a C-style null-terminated-string. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + const wchar_t* cs = L"aab"; + test_type re; + re.assign(cs); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc new file mode 100644 index 000000000..8d8e9656d --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc @@ -0,0 +1,44 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include + +// Tests basic_regex assign operator from a C-style null-terminated-string. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + const wchar_t* cs = L"aab"; + test_type re; + re = cs; +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc new file mode 100644 index 000000000..9034a542c --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include + +// Tests assign operation from a Pascal-style counted-string. +void test01() +{ + typedef std::basic_regex test_type; + + const wchar_t cs[] = L"aab"; + test_type re; + re.assign(cs, sizeof(cs)-1, std::regex_constants::basic); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc new file mode 100644 index 000000000..2e31a7084 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc @@ -0,0 +1,44 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include + +// Tests range assign of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + bool test __attribute__((unused)) = true; + + wchar_t s[] = L"a+b|c"; + test_type re; + re.assign(s, s + 5); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc new file mode 100644 index 000000000..156374ac1 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc @@ -0,0 +1,45 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include +#include + +// Tests C++ string assignment of the basic_regex class. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + std::wstring s(L"a*b"); + test_type re; + re.assign(s); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc new file mode 100644 index 000000000..43704af2b --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc @@ -0,0 +1,45 @@ +// { dg-do compile } +// { 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.8.3] class template basic_regex assign() + +#include +#include +#include + +// Tests basic_regex assignment operator from a C++ string; +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + std::wstring s(L"a*b"); + test_type re; + re = s; +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc new file mode 100644 index 000000000..7a744bbd8 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc @@ -0,0 +1,34 @@ +// { dg-options "-std=gnu++0x" } + +// Copyright (C) 2011 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 +// . + +// PR libstdc++/47724 + +#include + +void test01() +{ + std::regex s("^$"); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc new file mode 100644 index 000000000..b91453c0e --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2007-03-12 Stephen M. Webb +// +// Copyright (C) 2007, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 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 +// . + +// 7.8.2 basic_regex constructors + +#include + +void +test01() +{ + std::regex re("(a|b)*abb", std::regex::basic); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc new file mode 100644 index 000000000..2f011fe52 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc @@ -0,0 +1,42 @@ +// { 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.8.2] class template basic_regex constructor + +#include +#include + +// Tests Pascal-style counted-string constructor of the basic_regex class. +void test01() +{ + const char* cs = "aab"; + std::regex re(cs, 3, std::regex::basic); + + VERIFY( re.flags() & std::regex_constants::basic ); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc new file mode 100644 index 000000000..89deef6f1 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc @@ -0,0 +1,44 @@ +// { dg-do run } +// { dg-options "-std=c++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.8.2] class template basic_regex constructor + +#include +#include + +// Tests Pascal-style counted-string constructor of the basic_regex class. +void test01() +{ + bool test __attribute__((unused)) = true; + + const wchar_t* cs = L"aab"; + std::wregex re(cs, 3, std::wregex::basic); + + VERIFY( re.flags() & std::regex_constants::basic ); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc new file mode 100644 index 000000000..70ae2fa2a --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc @@ -0,0 +1,51 @@ +// { dg-options "-std=gnu++0x" } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010, 2011 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.8.2 basic_regex ctor +// Tests for invalid range expression + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + try + { + std::regex re("a\\{1,2,3\\}", std::regex::basic); + } + catch (std::regex_error& ex) + { + VERIFY( ex.code() == std::regex_constants::error_brace ); + } +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc new file mode 100644 index 000000000..ac87e4d69 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc @@ -0,0 +1,42 @@ +// { dg-do compile } +// { 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.8.2] class template basic_regex constructor + +#include +#include + +// Tests C-style null-terminated-string constructor of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + + const char* cs = "aab"; + test_type re(cs); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc new file mode 100644 index 000000000..8b93fe7a7 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2007-03-12 Stephen M. Webb +// +// Copyright (C) 2007, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 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 +// . + +// 7.8.2 basic_regex constructors + +#include + +void +test01() +{ + std::regex re("(a|b)*abb", std::regex::awk); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc new file mode 100644 index 000000000..6c72736c5 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2007-03-12 Stephen M. Webb +// +// Copyright (C) 2007, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 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 +// . + +// 7.8.2 basic_regex constructors + +#include + +void +test01() +{ + std::regex re("(a|b)*abb"); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc new file mode 100644 index 000000000..f38a9b870 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2007-03-12 Stephen M. Webb +// +// Copyright (C) 2007, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 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 +// . + +// 7.8.2 basic_regex constructors + +#include + +void +test01() +{ + std::regex re("(a|b)*abb", std::regex::egrep); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc new file mode 100644 index 000000000..458f6d21c --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc @@ -0,0 +1,39 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2007-03-12 Stephen M. Webb +// +// Copyright (C) 2007, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 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 +// . + +// 7.8.2 basic_regex constructors + +#include + +void +test01() +{ + using std::regex; + + regex re("(a|b)*abb", regex::grep); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc new file mode 100644 index 000000000..b7c6f410c --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc @@ -0,0 +1,47 @@ +// { dg-do compile } +// { 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.8.2] class template basic_regex constructor + +#include +#include + +// Tests default constructor of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + + // default constructor + test_type re; + + // Check for required typedefs + typedef test_type::value_type value_type; + typedef test_type::flag_type flag_type; + typedef test_type::locale_type locale_type; +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc new file mode 100644 index 000000000..027a92784 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc @@ -0,0 +1,42 @@ +// { dg-do compile } +// { 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.8.2] class template basic_regex constructor + +#include +#include + +// Tests range constructor of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + + char s[] = "a+b|c"; + test_type re(s, s + 5); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc new file mode 100644 index 000000000..4ed5f92c8 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc @@ -0,0 +1,45 @@ +// { dg-options "-std=c++0x" } + +// 2010-07-07 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.8.2](11) class template basic_regex constructors + +#include +#include + +// Tests copy constructor of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + + test_type src_re("aaba"); + + test_type target_re(src_re); + + VERIFY( target_re.flags() == src_re.flags() ); + VERIFY( target_re.mark_count() == src_re.mark_count() ); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc new file mode 100644 index 000000000..691b8c7f5 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2007-03-12 Stephen M. Webb +// +// Copyright (C) 2007, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 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 +// . + +// 7.8.2 basic_regex constructors + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("(wee|week)(knights|night)", std::regex::extended); + + VERIFY( re.flags() == std::regex::extended ); + VERIFY( re.mark_count() == 0 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc new file mode 100644 index 000000000..a6dddbaa1 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc @@ -0,0 +1,51 @@ +// { dg-options "-std=gnu++0x" } + +// +// 2010-06-16 Stephen M. Webb +// +// Copyright (C) 2010, 2011 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.8.2 basic_regex ctor +// Tests for invalid range expression + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + try + { + std::regex re("a{1,2,3}", std::regex::extended); + } + catch (std::regex_error& ex) + { + VERIFY( ex.code() == std::regex_constants::error_brace ); + } +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc new file mode 100644 index 000000000..ba056969c --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc @@ -0,0 +1,49 @@ +// { dg-options "-std=gnu++0x" } + +// 2010-07-07 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.8.2](12-14) class template basic_regex constructors + +#include +#include +#include + +// Tests move constructor of the basic_regex class. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + test_type src_re("aaba"); + const unsigned mark_count = src_re.mark_count(); + const test_type::flag_type flags = src_re.flags(); + + test_type target_re = std::move(src_re); + + VERIFY( target_re.flags() == flags ); + VERIFY( target_re.mark_count() == mark_count ); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc new file mode 100644 index 000000000..f65d783a7 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc @@ -0,0 +1,54 @@ +// { dg-do compile } +// { 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.8.2] class template basic_regex constructor + +#include +#include +#include +#include + +// Tests C++ string constructor of the basic_regex class. +void test01() +{ + typedef std::basic_regex test_type; + + std::string s("a*b"); + test_type re(s); +} + +void test02() +{ + typedef std::basic_regex test_type; + typedef __gnu_test::tracker_allocator alloc_type; + + std::basic_string, alloc_type> s("a*b"); + test_type re(s); +} + +int +main() +{ + test01(); + test02(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc new file mode 100644 index 000000000..b715195c3 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc @@ -0,0 +1,56 @@ +// { dg-do compile } +// { 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.8.2] class template basic_regex constructor + +#include +#include +#include +#include + +// Tests C++ string constructor of the basic_regex class. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + std::wstring s(L"a*b"); + test_type re(s); +} + +void test02() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + typedef __gnu_test::tracker_allocator alloc_type; + + std::basic_string, alloc_type> s(L"a*b"); + test_type re(s); +} + +int +main() +{ + test01(); + test02(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc new file mode 100644 index 000000000..4dabf3996 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// { 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.8.2] class template basic_regex constructor + +#include +#include + +// Tests C-style null-terminated-string constructor of the basic_regex class. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + const wchar_t* cs = L"aab"; + test_type re(cs); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc new file mode 100644 index 000000000..a0f417402 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc @@ -0,0 +1,48 @@ +// { dg-do compile } +// { 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.8.2] class template basic_regex constructor + +#include +#include + +// Tests default constructor of the basic_regex class. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + // default constructor + test_type re; + + // Check for required typedefs + typedef test_type::value_type value_type; + typedef test_type::flag_type flag_type; + typedef test_type::locale_type locale_type; +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc new file mode 100644 index 000000000..efc0597cc --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// { dg-options "-std=c++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.8.2] class template basic_regex constructor + +#include +#include + +// Tests range constructor of the basic_regex class. +void test01() +{ + bool test __attribute__((unused)) = true; + typedef std::basic_regex test_type; + + wchar_t s[] = L"a+b|c"; + test_type re(s, s + 5); +} + +int +main() +{ + test01(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/regex.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/regex.cc new file mode 100644 index 000000000..8a803ede8 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/regex.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// 2007-03-12 Stephen M. Webb +// +// Copyright (C) 2007, 2009, 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 +// . + +// 7.4 typedef std::regex + +#include + +void +test01() +{ + std::regex re; +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc new file mode 100644 index 000000000..5e6cc2e9f --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc @@ -0,0 +1,73 @@ +// { dg-do compile } +// { dg-options "-std=gnu++0x" } + +// Copyright (C) 2010, 2011 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 +// . + +#include +#include + +namespace __gnu_test +{ + struct constexpr_member_data + { + template + void + operator()() + { + struct _Concept + { + void __constraint() + { + constexpr auto v1 __attribute__((unused)) + = _Ttesttype::icase; + constexpr auto v2 __attribute__((unused)) + = _Ttesttype::nosubs; + constexpr auto v3 __attribute__((unused)) + = _Ttesttype::optimize; + constexpr auto v4 __attribute__((unused)) + = _Ttesttype::collate; + constexpr auto v5 __attribute__((unused)) + = _Ttesttype::ECMAScript; + constexpr auto v6 __attribute__((unused)) + = _Ttesttype::basic; + constexpr auto v7 __attribute__((unused)) + = _Ttesttype::extended; + constexpr auto v8 __attribute__((unused)) + = _Ttesttype::awk; + constexpr auto v9 __attribute__((unused)) + = _Ttesttype::grep; + constexpr auto v10 __attribute__((unused)) + = _Ttesttype::egrep; + } + }; + + _Concept c; + c.__constraint(); + } + }; +} + +int main() +{ + __gnu_test::constexpr_member_data test; + test.operator()(); +#ifdef _GLIBCXX_USE_WCHAR_T + test.operator()(); +#endif + return 0; +} -- cgit v1.2.3