summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/28_regex/constants
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/testsuite/28_regex/constants')
-rw-r--r--libstdc++-v3/testsuite/28_regex/constants/error_type.cc54
-rw-r--r--libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc53
-rw-r--r--libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc91
3 files changed, 198 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/28_regex/constants/error_type.cc b/libstdc++-v3/testsuite/28_regex/constants/error_type.cc
new file mode 100644
index 000000000..1841a4626
--- /dev/null
+++ b/libstdc++-v3/testsuite/28_regex/constants/error_type.cc
@@ -0,0 +1,54 @@
+// { dg-options "-std=c++0x" }
+// { dg-do compile }
+//
+// 2009-06-17 Stephen M. Webb <stephen.webb@xandros.com>
+//
+// 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
+// <http://www.gnu.org/licenses/>.
+
+// 28.5.3
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::regex_constants::error_type err __attribute__((unused));
+
+ err = std::regex_constants::error_collate;
+ err = std::regex_constants::error_ctype;
+ err = std::regex_constants::error_escape;
+ err = std::regex_constants::error_backref;
+ err = std::regex_constants::error_brack;
+ err = std::regex_constants::error_paren;
+ err = std::regex_constants::error_brace;
+ err = std::regex_constants::error_badbrace;
+ err = std::regex_constants::error_range;
+ err = std::regex_constants::error_space;
+ err = std::regex_constants::error_badrepeat;
+ err = std::regex_constants::error_complexity;
+ err = std::regex_constants::error_stack;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc b/libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc
new file mode 100644
index 000000000..10635ff5f
--- /dev/null
+++ b/libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc
@@ -0,0 +1,53 @@
+// { dg-options "-std=c++0x" }
+// { dg-do compile }
+//
+// 2009-06-17 Stephen M. Webb <stephen.webb@xandros.com>
+//
+// 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
+// <http://www.gnu.org/licenses/>.
+
+// 28.5.1
+
+#include <regex>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::regex_constants::match_flag_type flag = std::regex_constants::match_default;
+
+ flag |= std::regex_constants::match_not_bol;
+ flag |= std::regex_constants::match_not_eol;
+ flag |= std::regex_constants::match_not_bow;
+ flag |= std::regex_constants::match_not_eow;
+ flag |= std::regex_constants::match_any;
+ flag |= std::regex_constants::match_not_null;
+ flag |= std::regex_constants::match_continuous;
+ flag |= std::regex_constants::match_prev_avail;
+ flag |= std::regex_constants::format_default;
+ flag |= std::regex_constants::format_sed;
+ flag |= std::regex_constants::format_no_copy;
+ flag |= std::regex_constants::format_first_only;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc b/libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
new file mode 100644
index 000000000..1f9876cac
--- /dev/null
+++ b/libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
@@ -0,0 +1,91 @@
+// { dg-options "-std=c++0x" }
+// { dg-do compile }
+//
+// 2009-06-17 Stephen M. Webb <stephen.webb@xandros.com>
+//
+// 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
+// <http://www.gnu.org/licenses/>.
+
+// 28.5.1
+
+#include <regex>
+
+void
+test01()
+{
+ std::regex_constants::syntax_option_type option { };
+ option = option | std::regex_constants::icase;
+ option = option | std::regex_constants::nosubs;
+ option = option | std::regex_constants::optimize;
+ option = option | std::regex_constants::collate;
+ option = option | std::regex_constants::ECMAScript;
+ option = option | std::regex_constants::basic;
+ option = option | std::regex_constants::extended;
+ option = option | std::regex_constants::awk;
+ option = option | std::regex_constants::grep;
+ option = option | std::regex_constants::egrep;
+}
+
+void
+test02()
+{
+ std::regex_constants::syntax_option_type option { };
+ option = option & std::regex_constants::icase;
+ option = option & std::regex_constants::nosubs;
+ option = option & std::regex_constants::optimize;
+ option = option & std::regex_constants::collate;
+ option = option & std::regex_constants::ECMAScript;
+ option = option & std::regex_constants::basic;
+ option = option & std::regex_constants::extended;
+ option = option & std::regex_constants::awk;
+ option = option & std::regex_constants::grep;
+ option = option & std::regex_constants::egrep;
+}
+
+void
+test03()
+{
+ std::regex_constants::syntax_option_type option { };
+ option = ~std::regex_constants::icase;
+ option = ~std::regex_constants::nosubs;
+ option = ~std::regex_constants::optimize;
+ option = ~std::regex_constants::collate;
+ option = ~std::regex_constants::ECMAScript;
+ option = ~std::regex_constants::basic;
+ option = ~std::regex_constants::extended;
+ option = ~std::regex_constants::awk;
+ option = ~std::regex_constants::grep;
+ option = ~std::regex_constants::egrep;
+ option = option;
+}
+
+void
+test04_constexpr()
+{
+ using namespace std::regex_constants;
+ constexpr auto a1 __attribute__((unused)) = icase | awk;
+ constexpr auto a2 __attribute__((unused)) = icase & awk;
+ constexpr auto a3 __attribute__((unused)) = ~grep;
+}
+
+int main()
+{
+ test01();
+ test02();
+ test03();
+ return 0;
+}