From 616e258d0b08b69083a558491449fbbe443bf3f1 Mon Sep 17 00:00:00 2001 From: bkoz Date: Fri, 11 Feb 2011 01:23:10 +0000 Subject: 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170038 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 29 +++++++ libstdc++-v3/include/bits/regex_error.h | 40 +++++----- libstdc++-v3/src/Makefile.am | 6 ++ libstdc++-v3/src/Makefile.in | 16 ++-- libstdc++-v3/src/regex.cc | 38 +++++++++ .../testsuite/28_regex/03_requirements/typedefs.cc | 38 --------- .../28_regex/04_header/regex/std_c++0x_neg.cc | 23 ------ .../testsuite/28_regex/05_constants/error_type.cc | 54 ------------- .../28_regex/05_constants/match_flag_type.cc | 53 ------------- .../28_regex/05_constants/syntax_option_type.cc | 91 ---------------------- .../28_regex/06_exception_type/regex_error.cc | 49 ------------ .../28_regex/08_basic_regex/assign/char/cstring.cc | 44 ----------- .../08_basic_regex/assign/char/cstring_op.cc | 43 ---------- .../08_basic_regex/assign/char/moveable.cc | 50 ------------ .../28_regex/08_basic_regex/assign/char/pstring.cc | 43 ---------- .../28_regex/08_basic_regex/assign/char/range.cc | 43 ---------- .../28_regex/08_basic_regex/assign/char/string.cc | 44 ----------- .../08_basic_regex/assign/char/string_op.cc | 44 ----------- .../08_basic_regex/assign/wchar_t/cstring.cc | 44 ----------- .../08_basic_regex/assign/wchar_t/cstring_op.cc | 44 ----------- .../08_basic_regex/assign/wchar_t/pstring.cc | 43 ---------- .../08_basic_regex/assign/wchar_t/range.cc | 44 ----------- .../08_basic_regex/assign/wchar_t/string.cc | 45 ----------- .../08_basic_regex/assign/wchar_t/string_op.cc | 45 ----------- .../28_regex/08_basic_regex/ctors/basic/cstring.cc | 37 --------- .../08_basic_regex/ctors/basic/pstring_char.cc | 42 ---------- .../08_basic_regex/ctors/basic/pstring_wchar_t.cc | 44 ----------- .../ctors/basic/string_range_01_02_03.cc | 52 ------------- .../28_regex/08_basic_regex/ctors/char/cstring.cc | 42 ---------- .../08_basic_regex/ctors/char/cstring_awk.cc | 37 --------- .../08_basic_regex/ctors/char/cstring_ecma.cc | 37 --------- .../08_basic_regex/ctors/char/cstring_egrep.cc | 37 --------- .../08_basic_regex/ctors/char/cstring_grep.cc | 39 ---------- .../28_regex/08_basic_regex/ctors/char/default.cc | 47 ----------- .../28_regex/08_basic_regex/ctors/char/range.cc | 42 ---------- .../28_regex/08_basic_regex/ctors/copy_char.cc | 45 ----------- .../08_basic_regex/ctors/extended/cstring.cc | 43 ---------- .../ctors/extended/string_range_01_02_03.cc | 52 ------------- .../28_regex/08_basic_regex/ctors/move_char.cc | 49 ------------ .../28_regex/08_basic_regex/ctors/string_char.cc | 54 ------------- .../08_basic_regex/ctors/string_wchar_t.cc | 56 ------------- .../08_basic_regex/ctors/wchar_t/cstring.cc | 43 ---------- .../08_basic_regex/ctors/wchar_t/default.cc | 48 ------------ .../28_regex/08_basic_regex/ctors/wchar_t/range.cc | 43 ---------- .../testsuite/28_regex/08_basic_regex/regex.cc | 37 --------- .../08_basic_regex/requirements/constexpr_data.cc | 73 ----------------- .../testsuite/28_regex/09_sub_match/cast_char.cc | 49 ------------ .../28_regex/09_sub_match/cast_wchar_t.cc | 49 ------------ .../testsuite/28_regex/09_sub_match/length.cc | 49 ------------ .../testsuite/28_regex/09_sub_match/typedefs.cc | 38 --------- .../10_match_results/ctors/char/default.cc | 52 ------------- .../10_match_results/ctors/wchar_t/default.cc | 52 ------------- .../28_regex/10_match_results/typedefs.cc | 44 ----------- .../11_algorithms/02_match/basic/string_01.cc | 63 --------------- .../02_match/basic/string_range_00_03.cc | 60 -------------- .../02_match/basic/string_range_01_03.cc | 60 -------------- .../02_match/basic/string_range_02_03.cc | 61 --------------- .../02_match/extended/cstring_plus.cc | 65 ---------------- .../02_match/extended/cstring_questionmark.cc | 65 ---------------- .../11_algorithms/02_match/extended/string_any.cc | 60 -------------- .../02_match/extended/string_range_00_03.cc | 60 -------------- .../02_match/extended/string_range_01_03.cc | 60 -------------- .../02_match/extended/string_range_02_03.cc | 61 --------------- .../regex_iterator/ctors/char/default.cc | 35 --------- .../regex_iterator/ctors/wchar_t/default.cc | 35 --------- .../12_iterators/regex_iterator/typedefs.cc | 40 ---------- .../regex_token_iterator/ctors/char/default.cc | 35 --------- .../regex_token_iterator/ctors/wchar_t/default.cc | 35 --------- .../12_iterators/regex_token_iterator/typedefs.cc | 40 ---------- .../algorithms/02_match/basic/string_01.cc | 63 +++++++++++++++ .../02_match/basic/string_range_00_03.cc | 60 ++++++++++++++ .../02_match/basic/string_range_01_03.cc | 60 ++++++++++++++ .../02_match/basic/string_range_02_03.cc | 61 +++++++++++++++ .../algorithms/02_match/extended/cstring_plus.cc | 65 ++++++++++++++++ .../02_match/extended/cstring_questionmark.cc | 65 ++++++++++++++++ .../algorithms/02_match/extended/string_any.cc | 60 ++++++++++++++ .../02_match/extended/string_range_00_03.cc | 60 ++++++++++++++ .../02_match/extended/string_range_01_03.cc | 60 ++++++++++++++ .../02_match/extended/string_range_02_03.cc | 61 +++++++++++++++ .../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 +++++++++++ .../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 | 52 +++++++++++++ .../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 | 52 +++++++++++++ .../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 +++++++++++++++++ .../testsuite/28_regex/constants/error_type.cc | 54 +++++++++++++ .../28_regex/constants/match_flag_type.cc | 53 +++++++++++++ .../28_regex/constants/syntax_option_type.cc | 91 ++++++++++++++++++++++ .../headers/04_header/regex/std_c++0x_neg.cc | 23 ++++++ .../iterators/regex_iterator/ctors/char/default.cc | 35 +++++++++ .../regex_iterator/ctors/wchar_t/default.cc | 35 +++++++++ .../28_regex/iterators/regex_iterator/typedefs.cc | 40 ++++++++++ .../regex_token_iterator/ctors/char/default.cc | 35 +++++++++ .../regex_token_iterator/ctors/wchar_t/default.cc | 35 +++++++++ .../iterators/regex_token_iterator/typedefs.cc | 40 ++++++++++ .../28_regex/match_results/ctors/char/default.cc | 52 +++++++++++++ .../match_results/ctors/wchar_t/default.cc | 52 +++++++++++++ .../testsuite/28_regex/match_results/typedefs.cc | 44 +++++++++++ .../testsuite/28_regex/regex_error/regex_error.cc | 49 ++++++++++++ .../testsuite/28_regex/requirements/typedefs.cc | 38 +++++++++ .../testsuite/28_regex/sub_match/cast_char.cc | 49 ++++++++++++ .../testsuite/28_regex/sub_match/cast_wchar_t.cc | 49 ++++++++++++ .../testsuite/28_regex/sub_match/length.cc | 49 ++++++++++++ .../testsuite/28_regex/sub_match/typedefs.cc | 38 +++++++++ 133 files changed, 3154 insertions(+), 3077 deletions(-) create mode 100644 libstdc++-v3/src/regex.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/03_requirements/typedefs.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/04_header/regex/std_c++0x_neg.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/05_constants/error_type.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/05_constants/match_flag_type.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/05_constants/syntax_option_type.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/06_exception_type/regex_error.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/cstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/moveable.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/pstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/range.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/string.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/string_op.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/range.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/copy_char.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/move_char.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/string_char.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/regex.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/09_sub_match/cast_char.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/09_sub_match/cast_wchar_t.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/09_sub_match/length.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/09_sub_match/typedefs.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/10_match_results/ctors/char/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/10_match_results/typedefs.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc delete mode 100644 libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_01.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_00_03.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_01_03.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_02_03.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_plus.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_questionmark.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_any.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc create mode 100644 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc 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/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 create mode 100644 libstdc++-v3/testsuite/28_regex/constants/error_type.cc create mode 100644 libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc create mode 100644 libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc create mode 100644 libstdc++-v3/testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc create mode 100644 libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc create mode 100644 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc create mode 100644 libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc create mode 100644 libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc create mode 100644 libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc create mode 100644 libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc create mode 100644 libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc create mode 100644 libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc create mode 100644 libstdc++-v3/testsuite/28_regex/sub_match/length.cc create mode 100644 libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc (limited to 'libstdc++-v3') diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 961877e55d7..6f8dd42108f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,32 @@ +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. + 2011-02-10 Jonathan Wakely PR libstdc++/47662 diff --git a/libstdc++-v3/include/bits/regex_error.h b/libstdc++-v3/include/bits/regex_error.h index cfcf4798f3b..c37a0fac6d9 100644 --- a/libstdc++-v3/include/bits/regex_error.h +++ b/libstdc++-v3/include/bits/regex_error.h @@ -60,60 +60,60 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; /** The expression contained an invalid collating element name. */ - static const error_type error_collate(_S_error_collate); + static constexpr error_type error_collate(_S_error_collate); /** The expression contained an invalid character class name. */ - static const error_type error_ctype(_S_error_ctype); + static constexpr error_type error_ctype(_S_error_ctype); /** * The expression contained an invalid escaped character, or a trailing * escape. */ - static const error_type error_escape(_S_error_escape); + static constexpr error_type error_escape(_S_error_escape); /** The expression contained an invalid back reference. */ - static const error_type error_backref(_S_error_backref); + static constexpr error_type error_backref(_S_error_backref); /** The expression contained mismatched [ and ]. */ - static const error_type error_brack(_S_error_brack); + static constexpr error_type error_brack(_S_error_brack); /** The expression contained mismatched ( and ). */ - static const error_type error_paren(_S_error_paren); + static constexpr error_type error_paren(_S_error_paren); /** The expression contained mismatched { and } */ - static const error_type error_brace(_S_error_brace); + static constexpr error_type error_brace(_S_error_brace); /** The expression contained an invalid range in a {} expression. */ - static const error_type error_badbrace(_S_error_badbrace); + static constexpr error_type error_badbrace(_S_error_badbrace); /** * The expression contained an invalid character range, * such as [b-a] in most encodings. */ - static const error_type error_range(_S_error_range); + static constexpr error_type error_range(_S_error_range); /** * There was insufficient memory to convert the expression into a * finite state machine. */ - static const error_type error_space(_S_error_space); + static constexpr error_type error_space(_S_error_space); /** * One of *?+{ was not preceded by a valid regular expression. */ - static const error_type error_badrepeat(_S_error_badrepeat); + static constexpr error_type error_badrepeat(_S_error_badrepeat); /** * The complexity of an attempted match against a regular expression * exceeded a pre-set level. */ - static const error_type error_complexity(_S_error_complexity); + static constexpr error_type error_complexity(_S_error_complexity); /** * There was insufficient memory to determine whether the * regular expression could match the specified character sequence. */ - static const error_type error_stack(_S_error_stack); + static constexpr error_type error_stack(_S_error_stack); //@} _GLIBCXX_END_NAMESPACE_VERSION @@ -128,9 +128,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * * The regular expression library throws objects of this class on error. */ - class regex_error - : public std::runtime_error + class regex_error : public std::runtime_error { + regex_constants::error_type _M_code; + public: /** * @brief Constructs a regex_error object. @@ -138,9 +139,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @param ecode the regex error code. */ explicit - regex_error(regex_constants::error_type __ecode) - : std::runtime_error("regex_error"), _M_code(__ecode) - { } + regex_error(regex_constants::error_type __ecode); + + virtual ~regex_error() throw(); /** * @brief Gets the regex error code. @@ -150,9 +151,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION regex_constants::error_type code() const { return _M_code; } - - protected: - regex_constants::error_type _M_code; }; diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am index d6618f0f8c0..5524a774e31 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -210,6 +210,7 @@ sources = \ misc-inst.cc \ ostream-inst.cc \ placeholders.cc \ + regex.cc \ sstream-inst.cc \ streambuf-inst.cc \ streambuf.cc \ @@ -352,6 +353,11 @@ future.lo: future.cc future.o: future.cc $(CXXCOMPILE) -std=gnu++0x -c $< +regex.lo: regex.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +regex.o: regex.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + debug.lo: debug.cc $(LTCXXCOMPILE) -std=gnu++0x -c $< debug.o: debug.cc diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 4d8eb33736e..956cbb9e4ad 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -110,11 +110,11 @@ am__objects_5 = atomic.lo bitmap_allocator.lo pool_allocator.lo \ strstream.lo system_error.lo tree.lo allocator-inst.lo \ concept-inst.lo fstream-inst.lo ext-inst.lo ios-inst.lo \ iostream-inst.lo istream-inst.lo istream.lo locale-inst.lo \ - misc-inst.lo ostream-inst.lo placeholders.lo sstream-inst.lo \ - streambuf-inst.lo streambuf.lo string-inst.lo valarray-inst.lo \ - wlocale-inst.lo wstring-inst.lo mutex.lo condition_variable.lo \ - chrono.lo thread.lo future.lo $(am__objects_1) \ - $(am__objects_4) + misc-inst.lo ostream-inst.lo placeholders.lo regex.lo \ + sstream-inst.lo streambuf-inst.lo streambuf.lo string-inst.lo \ + valarray-inst.lo wlocale-inst.lo wstring-inst.lo mutex.lo \ + condition_variable.lo chrono.lo thread.lo future.lo \ + $(am__objects_1) $(am__objects_4) am_libstdc___la_OBJECTS = $(am__objects_5) libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) @@ -427,6 +427,7 @@ sources = \ misc-inst.cc \ ostream-inst.cc \ placeholders.cc \ + regex.cc \ sstream-inst.cc \ streambuf-inst.cc \ streambuf.cc \ @@ -941,6 +942,11 @@ future.lo: future.cc future.o: future.cc $(CXXCOMPILE) -std=gnu++0x -c $< +regex.lo: regex.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +regex.o: regex.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + debug.lo: debug.cc $(LTCXXCOMPILE) -std=gnu++0x -c $< debug.o: debug.cc diff --git a/libstdc++-v3/src/regex.cc b/libstdc++-v3/src/regex.cc new file mode 100644 index 00000000000..8a47da341ae --- /dev/null +++ b/libstdc++-v3/src/regex.cc @@ -0,0 +1,38 @@ +// regex -*- C++ -*- + +// 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. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +#include + +namespace std _GLIBCXX_VISIBILITY(default) +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + + regex_error::regex_error(regex_constants::error_type __ecode) + : std::runtime_error("regex_error"), _M_code(__ecode) + { } + + regex_error::~regex_error() throw() { } + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace std diff --git a/libstdc++-v3/testsuite/28_regex/03_requirements/typedefs.cc b/libstdc++-v3/testsuite/28_regex/03_requirements/typedefs.cc deleted file mode 100644 index 072d5d07f40..00000000000 --- a/libstdc++-v3/testsuite/28_regex/03_requirements/typedefs.cc +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-do compile } -// { 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 - -#include - -void -test01() -{ - typedef std::regex_traits traits; - - typedef traits::char_type char_type; - typedef traits::string_type string_type; - typedef traits::locale_type locale_type; - typedef traits::char_class_type char_class_type; -} diff --git a/libstdc++-v3/testsuite/28_regex/04_header/regex/std_c++0x_neg.cc b/libstdc++-v3/testsuite/28_regex/04_header/regex/std_c++0x_neg.cc deleted file mode 100644 index e8ddb77bbb3..00000000000 --- a/libstdc++-v3/testsuite/28_regex/04_header/regex/std_c++0x_neg.cc +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++98" } - -// 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 -// . - -#include // { dg-excess-errors "In file included from" } - - diff --git a/libstdc++-v3/testsuite/28_regex/05_constants/error_type.cc b/libstdc++-v3/testsuite/28_regex/05_constants/error_type.cc deleted file mode 100644 index 1841a462688..00000000000 --- a/libstdc++-v3/testsuite/28_regex/05_constants/error_type.cc +++ /dev/null @@ -1,54 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do compile } -// -// 2009-06-17 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 -// . - -// 28.5.3 - -#include -#include - -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/05_constants/match_flag_type.cc b/libstdc++-v3/testsuite/28_regex/05_constants/match_flag_type.cc deleted file mode 100644 index 10635ff5f7f..00000000000 --- a/libstdc++-v3/testsuite/28_regex/05_constants/match_flag_type.cc +++ /dev/null @@ -1,53 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do compile } -// -// 2009-06-17 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 -// . - -// 28.5.1 - -#include -#include - -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/05_constants/syntax_option_type.cc b/libstdc++-v3/testsuite/28_regex/05_constants/syntax_option_type.cc deleted file mode 100644 index 1f9876cac12..00000000000 --- a/libstdc++-v3/testsuite/28_regex/05_constants/syntax_option_type.cc +++ /dev/null @@ -1,91 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do compile } -// -// 2009-06-17 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 -// . - -// 28.5.1 - -#include - -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; -} diff --git a/libstdc++-v3/testsuite/28_regex/06_exception_type/regex_error.cc b/libstdc++-v3/testsuite/28_regex/06_exception_type/regex_error.cc deleted file mode 100644 index 04fd7124277..00000000000 --- a/libstdc++-v3/testsuite/28_regex/06_exception_type/regex_error.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do compile } -// -// 2009-06-17 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 -// . - -// 28.6 [re.badexp] - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex_error error(std::regex_constants::error_collate); - VERIFY(error.code() == std::regex_constants::error_collate); - - try - { - throw error; - } - catch (std::runtime_error& ex) - { - } -} - -int main() -{ - test01(); - return 0; -} diff --git a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/cstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/cstring.cc deleted file mode 100644 index 1552818e987..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/cstring.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { 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/08_basic_regex/assign/char/cstring_op.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc deleted file mode 100644 index 12353023b38..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc +++ /dev/null @@ -1,43 +0,0 @@ -// { 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/08_basic_regex/assign/char/moveable.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/moveable.cc deleted file mode 100644 index 64f5bcac570..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/moveable.cc +++ /dev/null @@ -1,50 +0,0 @@ -// { 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/08_basic_regex/assign/char/pstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/pstring.cc deleted file mode 100644 index 398b66c6063..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/pstring.cc +++ /dev/null @@ -1,43 +0,0 @@ -// { 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/08_basic_regex/assign/char/range.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/range.cc deleted file mode 100644 index cd741d5fff2..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/range.cc +++ /dev/null @@ -1,43 +0,0 @@ -// { 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/08_basic_regex/assign/char/string.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/string.cc deleted file mode 100644 index afa071eb312..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/string.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { 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/08_basic_regex/assign/char/string_op.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/string_op.cc deleted file mode 100644 index 724872decd5..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/char/string_op.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { 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/08_basic_regex/assign/wchar_t/cstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc deleted file mode 100644 index 20ccab01244..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { 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/08_basic_regex/assign/wchar_t/cstring_op.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc deleted file mode 100644 index 8d8e9656d9e..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { 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/08_basic_regex/assign/wchar_t/pstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc deleted file mode 100644 index 9034a542c01..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc +++ /dev/null @@ -1,43 +0,0 @@ -// { 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/08_basic_regex/assign/wchar_t/range.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc deleted file mode 100644 index 2e31a708417..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { 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/08_basic_regex/assign/wchar_t/string.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc deleted file mode 100644 index 156374ac1a7..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc +++ /dev/null @@ -1,45 +0,0 @@ -// { 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/08_basic_regex/assign/wchar_t/string_op.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc deleted file mode 100644 index 43704af2bd1..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc +++ /dev/null @@ -1,45 +0,0 @@ -// { 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/08_basic_regex/ctors/basic/cstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc deleted file mode 100644 index b91453c0e77..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc +++ /dev/null @@ -1,37 +0,0 @@ -// { 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/08_basic_regex/ctors/basic/pstring_char.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc deleted file mode 100644 index 2f011fe52c4..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc +++ /dev/null @@ -1,42 +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.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/08_basic_regex/ctors/basic/pstring_wchar_t.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc deleted file mode 100644 index 89deef6f19f..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { 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/08_basic_regex/ctors/basic/string_range_01_02_03.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc deleted file mode 100644 index 471c89c9024..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc +++ /dev/null @@ -1,52 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-16 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 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_badbrace ); - } -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc deleted file mode 100644 index ac87e4d69a0..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc +++ /dev/null @@ -1,42 +0,0 @@ -// { 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/08_basic_regex/ctors/char/cstring_awk.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc deleted file mode 100644 index 8b93fe7a721..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc +++ /dev/null @@ -1,37 +0,0 @@ -// { 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/08_basic_regex/ctors/char/cstring_ecma.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc deleted file mode 100644 index 6c72736c5cd..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc +++ /dev/null @@ -1,37 +0,0 @@ -// { 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/08_basic_regex/ctors/char/cstring_egrep.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc deleted file mode 100644 index f38a9b8704e..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc +++ /dev/null @@ -1,37 +0,0 @@ -// { 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/08_basic_regex/ctors/char/cstring_grep.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc deleted file mode 100644 index 458f6d21cc5..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc +++ /dev/null @@ -1,39 +0,0 @@ -// { 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/08_basic_regex/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/default.cc deleted file mode 100644 index b7c6f410cde..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/default.cc +++ /dev/null @@ -1,47 +0,0 @@ -// { 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/08_basic_regex/ctors/char/range.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/range.cc deleted file mode 100644 index 027a927849e..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/char/range.cc +++ /dev/null @@ -1,42 +0,0 @@ -// { 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/08_basic_regex/ctors/copy_char.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/copy_char.cc deleted file mode 100644 index 4ed5f92c8b0..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/copy_char.cc +++ /dev/null @@ -1,45 +0,0 @@ -// { 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/08_basic_regex/ctors/extended/cstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc deleted file mode 100644 index 691b8c7f5f1..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc +++ /dev/null @@ -1,43 +0,0 @@ -// { 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/08_basic_regex/ctors/extended/string_range_01_02_03.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc deleted file mode 100644 index 036321face5..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc +++ /dev/null @@ -1,52 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-16 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 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_badbrace ); - } -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/move_char.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/move_char.cc deleted file mode 100644 index ba056969c5c..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/move_char.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { 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/08_basic_regex/ctors/string_char.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/string_char.cc deleted file mode 100644 index f65d783a735..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/string_char.cc +++ /dev/null @@ -1,54 +0,0 @@ -// { 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/08_basic_regex/ctors/string_wchar_t.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc deleted file mode 100644 index b715195c383..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc +++ /dev/null @@ -1,56 +0,0 @@ -// { 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/08_basic_regex/ctors/wchar_t/cstring.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc deleted file mode 100644 index 4dabf399677..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc +++ /dev/null @@ -1,43 +0,0 @@ -// { 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/08_basic_regex/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc deleted file mode 100644 index a0f41740229..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc +++ /dev/null @@ -1,48 +0,0 @@ -// { 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/08_basic_regex/ctors/wchar_t/range.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc deleted file mode 100644 index efc0597cc1d..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc +++ /dev/null @@ -1,43 +0,0 @@ -// { 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/08_basic_regex/regex.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/regex.cc deleted file mode 100644 index 8a803ede81f..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/regex.cc +++ /dev/null @@ -1,37 +0,0 @@ -// { 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/08_basic_regex/requirements/constexpr_data.cc b/libstdc++-v3/testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc deleted file mode 100644 index 5e6cc2e9f8b..00000000000 --- a/libstdc++-v3/testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc +++ /dev/null @@ -1,73 +0,0 @@ -// { 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; -} diff --git a/libstdc++-v3/testsuite/28_regex/09_sub_match/cast_char.cc b/libstdc++-v3/testsuite/28_regex/09_sub_match/cast_char.cc deleted file mode 100644 index 6beb9c5cdb2..00000000000 --- a/libstdc++-v3/testsuite/28_regex/09_sub_match/cast_char.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-09 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.9.1 [re.submatch.members] sub_match members - -#include -#include -#include - - -void -test01() -{ - bool test __attribute__((unused)) = true; - - typedef char value_type; - typedef std::basic_string string_type; - typedef std::sub_match sub_match_type; - value_type test_data[] = "cabbage"; - - sub_match_type sm; - sm.first = test_data + 0; - sm.second = test_data + sizeof(test_data)/sizeof(value_type); - sm.matched = true; - - string_type sm_string = sm; - - VERIFY( sm_string == string_type(test_data) ); -} diff --git a/libstdc++-v3/testsuite/28_regex/09_sub_match/cast_wchar_t.cc b/libstdc++-v3/testsuite/28_regex/09_sub_match/cast_wchar_t.cc deleted file mode 100644 index 6e29ac88c09..00000000000 --- a/libstdc++-v3/testsuite/28_regex/09_sub_match/cast_wchar_t.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-09 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.9.1 [re.submatch.members] sub_match members - -#include -#include -#include - - -void -test01() -{ - bool test __attribute__((unused)) = true; - - typedef wchar_t value_type; - typedef std::basic_string string_type; - typedef std::sub_match sub_match_type; - value_type test_data[] = L"cabbage"; - - sub_match_type sm; - sm.first = test_data + 0; - sm.second = test_data + sizeof(test_data)/sizeof(value_type); - sm.matched = true; - - string_type sm_string = sm; - - VERIFY( sm_string == string_type(test_data) ); -} diff --git a/libstdc++-v3/testsuite/28_regex/09_sub_match/length.cc b/libstdc++-v3/testsuite/28_regex/09_sub_match/length.cc deleted file mode 100644 index fc12b920ad9..00000000000 --- a/libstdc++-v3/testsuite/28_regex/09_sub_match/length.cc +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-09 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.9.1 [re.submatch.members] sub_match members - -#include -#include - - -void -test01() -{ - bool test __attribute__((unused)) = true; - - typedef std::sub_match sm_t; - const char* test_data = "cabbage"; - sm_t::difference_type test_len = 3; - - sm_t sm1; - sm1.first = test_data + 0; - sm1.second = test_data + test_len; - sm1.matched = true; - - sm_t sm2; - sm2.matched = false; - - VERIFY( sm1.length() == test_len ); - VERIFY( sm2.length() == 0 ); -} diff --git a/libstdc++-v3/testsuite/28_regex/09_sub_match/typedefs.cc b/libstdc++-v3/testsuite/28_regex/09_sub_match/typedefs.cc deleted file mode 100644 index c150da02dac..00000000000 --- a/libstdc++-v3/testsuite/28_regex/09_sub_match/typedefs.cc +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-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.9 Class template sub_match - -#include - - -void -test01() -{ - typedef std::sub_match sm; - - typedef sm::value_type value_type; - typedef sm::difference_type difference_type; - typedef sm::iterator iterator; - typedef sm::string_type string_type; -} diff --git a/libstdc++-v3/testsuite/28_regex/10_match_results/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/10_match_results/ctors/char/default.cc deleted file mode 100644 index 4c897d7a4a0..00000000000 --- a/libstdc++-v3/testsuite/28_regex/10_match_results/ctors/char/default.cc +++ /dev/null @@ -1,52 +0,0 @@ -// { dg-options "-std=c++0x" } - -// 2009-06-10 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.10.1] class template match_results constructor - -#include -#include - -// Tests default constructor of the match_result class. -void test01() -{ - bool test __attribute__((unused)) = true; - - std::cmatch cm; - VERIFY( cm.size() == 0 ); - VERIFY( cm.str() == std::cmatch::string_type() ); -} - -void test02() -{ - bool test __attribute__((unused)) = true; - - std::smatch sm; - VERIFY( sm.size() == 0 ); - VERIFY( sm.str() == std::smatch::string_type() ); -} - -int -main() -{ - test01(); - test02(); - return 0; -}; diff --git a/libstdc++-v3/testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc deleted file mode 100644 index f8b3d45e867..00000000000 --- a/libstdc++-v3/testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc +++ /dev/null @@ -1,52 +0,0 @@ -// { 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.10.1] class template match_results constructor - -#include -#include - -// Tests default constructor of the match_result class. -void test01() -{ - bool test __attribute__((unused)) = true; - - std::wcmatch cm; - VERIFY( cm.size() == 0 ); - VERIFY( cm.str() == std::wcmatch::string_type() ); -} - -void test02() -{ - bool test __attribute__((unused)) = true; - - std::wsmatch sm; - VERIFY( sm.size() == 0 ); - VERIFY( sm.str() == std::wsmatch::string_type() ); -} - -int -main() -{ - test01(); - test02(); - return 0; -}; diff --git a/libstdc++-v3/testsuite/28_regex/10_match_results/typedefs.cc b/libstdc++-v3/testsuite/28_regex/10_match_results/typedefs.cc deleted file mode 100644 index 02bdcdadb71..00000000000 --- a/libstdc++-v3/testsuite/28_regex/10_match_results/typedefs.cc +++ /dev/null @@ -1,44 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-10 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.10 Class template sub_match - -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef std::match_results mr; - - typedef mr::value_type value_type; - typedef mr::const_reference const_reference; - typedef mr::reference reference; - typedef mr::const_iterator const_iterator; - typedef mr::iterator iterator; - typedef mr::difference_type difference_type; - typedef mr::size_type size_type; - typedef mr::allocator_type allocator_type; - typedef mr::char_type char_type; - typedef mr::string_type string_type; -} diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc deleted file mode 100644 index 4a7161a7967..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc +++ /dev/null @@ -1,63 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-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.11.2 regex_match -// Tests BRE against a std::string target. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("\\(a\\).*", std::regex::basic); - std::string target("aaba"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); - VERIFY( m[1].first == target.begin() ); - VERIFY( m[1].second == target.begin()+1 ); - VERIFY( m[1].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc deleted file mode 100644 index 6c0fdd76f2c..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 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.11.2 regex_match -// Tests BRE against a std::string target, exercising range {0,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a\\{0,3\\}", std::regex::basic); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc deleted file mode 100644 index 3439b544b63..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 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.11.2 regex_match -// Tests BRE against a std::string target, exercising range {1,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a\\{1,3\\}", std::regex::basic); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc deleted file mode 100644 index dfd00a0f3d7..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc +++ /dev/null @@ -1,61 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-16 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.11.2 regex_match -// Tests BRE against a std::string target, exercising range {2,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a\\{2,3\\}", std::regex::basic); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc deleted file mode 100644 index ad0f57e221d..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc +++ /dev/null @@ -1,65 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-21 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.11.2 regex_match -// Tests ERE against a C-string target, plus-sign match. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("(a+)", std::regex::extended); - const char target[] = "aa"; - std::cmatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( re.mark_count() == 1 ); - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target ); - VERIFY( m.prefix().second == target ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target+sizeof(target) ); - VERIFY( m.suffix().second == target+sizeof(target) ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target ); - VERIFY( m[0].second == target+sizeof(target) ); - VERIFY( m[0].matched == true ); - VERIFY( m[1].first == target ); - VERIFY( m[1].second == target+sizeof(target) ); - VERIFY( m[1].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc deleted file mode 100644 index 21abea456a9..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc +++ /dev/null @@ -1,65 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-21 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.11.2 regex_match -// Tests ERE against a C-string target, question-mark match. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("(aa?)", std::regex::extended); - char target[] = "a"; - std::cmatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( re.mark_count() == 1 ); - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target ); - VERIFY( m.prefix().second == target ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target+sizeof(target) ); - VERIFY( m.suffix().second == target+sizeof(target) ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target ); - VERIFY( m[0].second == target+sizeof(target) ); - VERIFY( m[0].matched == true ); - VERIFY( m[1].first == target ); - VERIFY( m[1].second == target+sizeof(target) ); - VERIFY( m[1].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc deleted file mode 100644 index 8d3716b1edf..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-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.11.2 regex_match -// Tests ERE against a std::string target. - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re(".*", std::regex::extended); - std::string target("aaba"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc deleted file mode 100644 index a0a2e1fa9d8..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 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.11.2 regex_match -// Tests ERE against a std::string target, exercising range {0,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a{0,3}", std::regex::extended); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc deleted file mode 100644 index b50e07645ab..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=c++0x" } - -// -// 2010-06-16 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.11.2 regex_match -// Tests ERE against a std::string target, exercising range {1,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a{1,3}", std::regex::extended); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc deleted file mode 100644 index ca322a8d4cd..00000000000 --- a/libstdc++-v3/testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc +++ /dev/null @@ -1,61 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } - -// -// 2010-06-16 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.11.2 regex_match -// Tests ERE against a std::string target, exercising range {2,3} - -#include -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - - std::regex re("a{2,3}", std::regex::extended); - std::string target("aa"); - std::smatch m; - - VERIFY( std::regex_match(target, m, re) ); - - VERIFY( m.size() == re.mark_count()+1 ); - VERIFY( m.empty() == false ); - VERIFY( m.prefix().first == target.begin() ); - VERIFY( m.prefix().second == target.begin() ); - VERIFY( m.prefix().matched == false ); - VERIFY( m.suffix().first == target.end() ); - VERIFY( m.suffix().second == target.end() ); - VERIFY( m.suffix().matched == false ); - VERIFY( m[0].first == target.begin() ); - VERIFY( m[0].second == target.end() ); - VERIFY( m[0].matched == true ); -} - - -int -main() -{ - test01(); - return 0; -} - diff --git a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc deleted file mode 100644 index 2de4a0d09b8..00000000000 --- a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-10 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.12.1 Class template regex_iterator - -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - std::regex_iterator it; - std::cregex_iterator cit; - std::sregex_iterator sit; -} diff --git a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc deleted file mode 100644 index 33fb5baa808..00000000000 --- a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-10 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.12.1 Class template regex_iterator - -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - std::regex_iterator it; - std::wcregex_iterator cit; - std::wsregex_iterator sit; -} diff --git a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc b/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc deleted file mode 100644 index 8ad88995078..00000000000 --- a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc +++ /dev/null @@ -1,40 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-10 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.12.1 Class template regex_iterator - -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef std::regex_iterator it; - - typedef it::regex_type regex_type; - typedef it::value_type value_type; - typedef it::difference_type difference_type; - typedef it::pointer pointer; - typedef it::reference reference; - typedef it::iterator_category iterator_category; -} diff --git a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc deleted file mode 100644 index 5105c7d8732..00000000000 --- a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-10 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.12.2 Class template regex_token_iterator - -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - std::regex_token_iterator it; - std::cregex_token_iterator cit; - std::sregex_token_iterator sit; -} diff --git a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc deleted file mode 100644 index fe918c80d71..00000000000 --- a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// -// 2010-06-10 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.12.2 Class template regex_token_iterator - -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - std::regex_token_iterator it; - std::wcregex_token_iterator cit; - std::wsregex_token_iterator sit; -} diff --git a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc b/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc deleted file mode 100644 index d765ab2f403..00000000000 --- a/libstdc++-v3/testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc +++ /dev/null @@ -1,40 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// -// 2010-06-10 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.12.2 Class template regex_token_iterator - -#include - -void -test01() -{ - bool test __attribute__((unused)) = true; - typedef std::regex_token_iterator it; - - typedef it::regex_type regex_type; - typedef it::value_type value_type; - typedef it::difference_type difference_type; - typedef it::pointer pointer; - typedef it::reference reference; - typedef it::iterator_category iterator_category; -} diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_01.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_01.cc new file mode 100644 index 00000000000..4a7161a7967 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_01.cc @@ -0,0 +1,63 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-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.11.2 regex_match +// Tests BRE against a std::string target. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("\\(a\\).*", std::regex::basic); + std::string target("aaba"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); + VERIFY( m[1].first == target.begin() ); + VERIFY( m[1].second == target.begin()+1 ); + VERIFY( m[1].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_00_03.cc new file mode 100644 index 00000000000..6c0fdd76f2c --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_00_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 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.11.2 regex_match +// Tests BRE against a std::string target, exercising range {0,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a\\{0,3\\}", std::regex::basic); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_01_03.cc new file mode 100644 index 00000000000..3439b544b63 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_01_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 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.11.2 regex_match +// Tests BRE against a std::string target, exercising range {1,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a\\{1,3\\}", std::regex::basic); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_02_03.cc new file mode 100644 index 00000000000..dfd00a0f3d7 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/basic/string_range_02_03.cc @@ -0,0 +1,61 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-16 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.11.2 regex_match +// Tests BRE against a std::string target, exercising range {2,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a\\{2,3\\}", std::regex::basic); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_plus.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_plus.cc new file mode 100644 index 00000000000..ad0f57e221d --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_plus.cc @@ -0,0 +1,65 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-21 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.11.2 regex_match +// Tests ERE against a C-string target, plus-sign match. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("(a+)", std::regex::extended); + const char target[] = "aa"; + std::cmatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( re.mark_count() == 1 ); + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target ); + VERIFY( m.prefix().second == target ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target+sizeof(target) ); + VERIFY( m.suffix().second == target+sizeof(target) ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target ); + VERIFY( m[0].second == target+sizeof(target) ); + VERIFY( m[0].matched == true ); + VERIFY( m[1].first == target ); + VERIFY( m[1].second == target+sizeof(target) ); + VERIFY( m[1].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_questionmark.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_questionmark.cc new file mode 100644 index 00000000000..21abea456a9 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/cstring_questionmark.cc @@ -0,0 +1,65 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-21 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.11.2 regex_match +// Tests ERE against a C-string target, question-mark match. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("(aa?)", std::regex::extended); + char target[] = "a"; + std::cmatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( re.mark_count() == 1 ); + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target ); + VERIFY( m.prefix().second == target ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target+sizeof(target) ); + VERIFY( m.suffix().second == target+sizeof(target) ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target ); + VERIFY( m[0].second == target+sizeof(target) ); + VERIFY( m[0].matched == true ); + VERIFY( m[1].first == target ); + VERIFY( m[1].second == target+sizeof(target) ); + VERIFY( m[1].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_any.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_any.cc new file mode 100644 index 00000000000..8d3716b1edf --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_any.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-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.11.2 regex_match +// Tests ERE against a std::string target. + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re(".*", std::regex::extended); + std::string target("aaba"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc new file mode 100644 index 00000000000..a0a2e1fa9d8 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 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.11.2 regex_match +// Tests ERE against a std::string target, exercising range {0,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a{0,3}", std::regex::extended); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc new file mode 100644 index 00000000000..b50e07645ab --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc @@ -0,0 +1,60 @@ +// { dg-options "-std=c++0x" } + +// +// 2010-06-16 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.11.2 regex_match +// Tests ERE against a std::string target, exercising range {1,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a{1,3}", std::regex::extended); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc new file mode 100644 index 00000000000..ca322a8d4cd --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc @@ -0,0 +1,61 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-16 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.11.2 regex_match +// Tests ERE against a std::string target, exercising range {2,3} + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex re("a{2,3}", std::regex::extended); + std::string target("aa"); + std::smatch m; + + VERIFY( std::regex_match(target, m, re) ); + + VERIFY( m.size() == re.mark_count()+1 ); + VERIFY( m.empty() == false ); + VERIFY( m.prefix().first == target.begin() ); + VERIFY( m.prefix().second == target.begin() ); + VERIFY( m.prefix().matched == false ); + VERIFY( m.suffix().first == target.end() ); + VERIFY( m.suffix().second == target.end() ); + VERIFY( m.suffix().matched == false ); + VERIFY( m[0].first == target.begin() ); + VERIFY( m[0].second == target.end() ); + VERIFY( m[0].matched == true ); +} + + +int +main() +{ + test01(); + return 0; +} + 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 00000000000..1552818e987 --- /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 00000000000..12353023b38 --- /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 00000000000..64f5bcac570 --- /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 00000000000..398b66c6063 --- /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 00000000000..cd741d5fff2 --- /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 00000000000..afa071eb312 --- /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 00000000000..724872decd5 --- /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 00000000000..20ccab01244 --- /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 00000000000..8d8e9656d9e --- /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 00000000000..9034a542c01 --- /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 00000000000..2e31a708417 --- /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 00000000000..156374ac1a7 --- /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 00000000000..43704af2bd1 --- /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/basic/cstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc new file mode 100644 index 00000000000..b91453c0e77 --- /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 00000000000..2f011fe52c4 --- /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 00000000000..89deef6f19f --- /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 00000000000..471c89c9024 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc @@ -0,0 +1,52 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-16 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 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_badbrace ); + } +} + + +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 00000000000..ac87e4d69a0 --- /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 00000000000..8b93fe7a721 --- /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 00000000000..6c72736c5cd --- /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 00000000000..f38a9b8704e --- /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 00000000000..458f6d21cc5 --- /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 00000000000..b7c6f410cde --- /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 00000000000..027a927849e --- /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 00000000000..4ed5f92c8b0 --- /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 00000000000..691b8c7f5f1 --- /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 00000000000..036321face5 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc @@ -0,0 +1,52 @@ +// { dg-options "-std=c++0x" } +// { dg-do run { xfail *-*-* } } + +// +// 2010-06-16 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 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_badbrace ); + } +} + + +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 00000000000..ba056969c5c --- /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 00000000000..f65d783a735 --- /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 00000000000..b715195c383 --- /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 00000000000..4dabf399677 --- /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 00000000000..a0f41740229 --- /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 00000000000..efc0597cc1d --- /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 00000000000..8a803ede81f --- /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 00000000000..5e6cc2e9f8b --- /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; +} 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 00000000000..1841a462688 --- /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 +// +// 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 +// . + +// 28.5.3 + +#include +#include + +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 00000000000..10635ff5f7f --- /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 +// +// 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 +// . + +// 28.5.1 + +#include +#include + +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 00000000000..1f9876cac12 --- /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 +// +// 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 +// . + +// 28.5.1 + +#include + +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; +} diff --git a/libstdc++-v3/testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc b/libstdc++-v3/testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc new file mode 100644 index 00000000000..e8ddb77bbb3 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/headers/04_header/regex/std_c++0x_neg.cc @@ -0,0 +1,23 @@ +// { dg-do compile } +// { dg-options "-std=gnu++98" } + +// 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 +// . + +#include // { dg-excess-errors "In file included from" } + + diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc new file mode 100644 index 00000000000..2de4a0d09b8 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc @@ -0,0 +1,35 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-10 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.12.1 Class template regex_iterator + +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + std::regex_iterator it; + std::cregex_iterator cit; + std::sregex_iterator sit; +} diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc new file mode 100644 index 00000000000..33fb5baa808 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc @@ -0,0 +1,35 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-10 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.12.1 Class template regex_iterator + +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + std::regex_iterator it; + std::wcregex_iterator cit; + std::wsregex_iterator sit; +} diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc new file mode 100644 index 00000000000..8ad88995078 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc @@ -0,0 +1,40 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-10 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.12.1 Class template regex_iterator + +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef std::regex_iterator it; + + typedef it::regex_type regex_type; + typedef it::value_type value_type; + typedef it::difference_type difference_type; + typedef it::pointer pointer; + typedef it::reference reference; + typedef it::iterator_category iterator_category; +} diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc new file mode 100644 index 00000000000..5105c7d8732 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc @@ -0,0 +1,35 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-10 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.12.2 Class template regex_token_iterator + +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + std::regex_token_iterator it; + std::cregex_token_iterator cit; + std::sregex_token_iterator sit; +} diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc new file mode 100644 index 00000000000..fe918c80d71 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc @@ -0,0 +1,35 @@ +// { dg-do compile } +// { dg-options "-std=gnu++0x" } + +// +// 2010-06-10 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.12.2 Class template regex_token_iterator + +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + std::regex_token_iterator it; + std::wcregex_token_iterator cit; + std::wsregex_token_iterator sit; +} diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc new file mode 100644 index 00000000000..d765ab2f403 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc @@ -0,0 +1,40 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-10 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.12.2 Class template regex_token_iterator + +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef std::regex_token_iterator it; + + typedef it::regex_type regex_type; + typedef it::value_type value_type; + typedef it::difference_type difference_type; + typedef it::pointer pointer; + typedef it::reference reference; + typedef it::iterator_category iterator_category; +} diff --git a/libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc b/libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc new file mode 100644 index 00000000000..4c897d7a4a0 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc @@ -0,0 +1,52 @@ +// { dg-options "-std=c++0x" } + +// 2009-06-10 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.10.1] class template match_results constructor + +#include +#include + +// Tests default constructor of the match_result class. +void test01() +{ + bool test __attribute__((unused)) = true; + + std::cmatch cm; + VERIFY( cm.size() == 0 ); + VERIFY( cm.str() == std::cmatch::string_type() ); +} + +void test02() +{ + bool test __attribute__((unused)) = true; + + std::smatch sm; + VERIFY( sm.size() == 0 ); + VERIFY( sm.str() == std::smatch::string_type() ); +} + +int +main() +{ + test01(); + test02(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc b/libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc new file mode 100644 index 00000000000..f8b3d45e867 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc @@ -0,0 +1,52 @@ +// { 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.10.1] class template match_results constructor + +#include +#include + +// Tests default constructor of the match_result class. +void test01() +{ + bool test __attribute__((unused)) = true; + + std::wcmatch cm; + VERIFY( cm.size() == 0 ); + VERIFY( cm.str() == std::wcmatch::string_type() ); +} + +void test02() +{ + bool test __attribute__((unused)) = true; + + std::wsmatch sm; + VERIFY( sm.size() == 0 ); + VERIFY( sm.str() == std::wsmatch::string_type() ); +} + +int +main() +{ + test01(); + test02(); + return 0; +}; diff --git a/libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc b/libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc new file mode 100644 index 00000000000..02bdcdadb71 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc @@ -0,0 +1,44 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-10 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.10 Class template sub_match + +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + typedef std::match_results mr; + + typedef mr::value_type value_type; + typedef mr::const_reference const_reference; + typedef mr::reference reference; + typedef mr::const_iterator const_iterator; + typedef mr::iterator iterator; + typedef mr::difference_type difference_type; + typedef mr::size_type size_type; + typedef mr::allocator_type allocator_type; + typedef mr::char_type char_type; + typedef mr::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc b/libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc new file mode 100644 index 00000000000..04fd7124277 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc @@ -0,0 +1,49 @@ +// { dg-options "-std=c++0x" } +// { dg-do compile } +// +// 2009-06-17 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 +// . + +// 28.6 [re.badexp] + +#include +#include + +void +test01() +{ + bool test __attribute__((unused)) = true; + + std::regex_error error(std::regex_constants::error_collate); + VERIFY(error.code() == std::regex_constants::error_collate); + + try + { + throw error; + } + catch (std::runtime_error& ex) + { + } +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc b/libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc new file mode 100644 index 00000000000..072d5d07f40 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc @@ -0,0 +1,38 @@ +// { dg-do compile } +// { 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 + +#include + +void +test01() +{ + typedef std::regex_traits traits; + + typedef traits::char_type char_type; + typedef traits::string_type string_type; + typedef traits::locale_type locale_type; + typedef traits::char_class_type char_class_type; +} diff --git a/libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc b/libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc new file mode 100644 index 00000000000..6beb9c5cdb2 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc @@ -0,0 +1,49 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-09 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.9.1 [re.submatch.members] sub_match members + +#include +#include +#include + + +void +test01() +{ + bool test __attribute__((unused)) = true; + + typedef char value_type; + typedef std::basic_string string_type; + typedef std::sub_match sub_match_type; + value_type test_data[] = "cabbage"; + + sub_match_type sm; + sm.first = test_data + 0; + sm.second = test_data + sizeof(test_data)/sizeof(value_type); + sm.matched = true; + + string_type sm_string = sm; + + VERIFY( sm_string == string_type(test_data) ); +} diff --git a/libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc b/libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc new file mode 100644 index 00000000000..6e29ac88c09 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc @@ -0,0 +1,49 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-09 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.9.1 [re.submatch.members] sub_match members + +#include +#include +#include + + +void +test01() +{ + bool test __attribute__((unused)) = true; + + typedef wchar_t value_type; + typedef std::basic_string string_type; + typedef std::sub_match sub_match_type; + value_type test_data[] = L"cabbage"; + + sub_match_type sm; + sm.first = test_data + 0; + sm.second = test_data + sizeof(test_data)/sizeof(value_type); + sm.matched = true; + + string_type sm_string = sm; + + VERIFY( sm_string == string_type(test_data) ); +} diff --git a/libstdc++-v3/testsuite/28_regex/sub_match/length.cc b/libstdc++-v3/testsuite/28_regex/sub_match/length.cc new file mode 100644 index 00000000000..fc12b920ad9 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/sub_match/length.cc @@ -0,0 +1,49 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-09 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.9.1 [re.submatch.members] sub_match members + +#include +#include + + +void +test01() +{ + bool test __attribute__((unused)) = true; + + typedef std::sub_match sm_t; + const char* test_data = "cabbage"; + sm_t::difference_type test_len = 3; + + sm_t sm1; + sm1.first = test_data + 0; + sm1.second = test_data + test_len; + sm1.matched = true; + + sm_t sm2; + sm2.matched = false; + + VERIFY( sm1.length() == test_len ); + VERIFY( sm2.length() == 0 ); +} diff --git a/libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc b/libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc new file mode 100644 index 00000000000..c150da02dac --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc @@ -0,0 +1,38 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +// +// 2010-06-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.9 Class template sub_match + +#include + + +void +test01() +{ + typedef std::sub_match sm; + + typedef sm::value_type value_type; + typedef sm::difference_type difference_type; + typedef sm::iterator iterator; + typedef sm::string_type string_type; +} -- cgit v1.2.1