aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely.gcc@gmail.com>2009-01-11 17:25:23 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2009-01-11 17:25:23 +0000
commit06bbcf59db3e58b29025d0fe15201b0261744780 (patch)
tree5e1581b4cbf051628f7453eee489702e591a173a /libstdc++-v3
parent1027047119fcb737bd24ea302c13ad3bd19ac3e4 (diff)
downloadgcc-06bbcf59db3e58b29025d0fe15201b0261744780.zip
gcc-06bbcf59db3e58b29025d0fe15201b0261744780.tar.gz
gcc-06bbcf59db3e58b29025d0fe15201b0261744780.tar.bz2
regex (basic_regex::basic_regex): Use range constructor for _M_pattern.
* include/tr1_impl/regex (basic_regex::basic_regex): Use range constructor for _M_pattern. * testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/ string.cc: Test construction from different basic_string type. * testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/ string.cc: Likewise. From-SVN: r143275
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/include/tr1_impl/regex8
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc11
-rw-r--r--libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc11
4 files changed, 35 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 02bfce7..e56bd23 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,12 @@
+2009-01-11 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/tr1_impl/regex (basic_regex::basic_regex): Use range
+ constructor for _M_pattern.
+ * testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/
+ string.cc: Test construction from different basic_string type.
+ * testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/
+ string.cc: Likewise.
+
2009-01-07 Benjamin Kosnik <bkoz@redhat.com>
Jonathan Larmour <jifl@eCosCentric.com>
diff --git a/libstdc++-v3/include/tr1_impl/regex b/libstdc++-v3/include/tr1_impl/regex
index 2e79841..80bc394 100644
--- a/libstdc++-v3/include/tr1_impl/regex
+++ b/libstdc++-v3/include/tr1_impl/regex
@@ -796,18 +796,18 @@ namespace regex_constants
/**
* @brief Constructs a basic regular expression from the string
- * @p interpreted according to the flags in @p f.
+ * @p s interpreted according to the flags in @p f.
*
- * @param p A string containing a regular expression.
+ * @param s A string containing a regular expression.
* @param f Flags indicating the syntax rules and options.
*
- * @throws regex_error if @p p is not a valid regular expression.
+ * @throws regex_error if @p s is not a valid regular expression.
*/
template<typename _Ch_traits, typename _Ch_alloc>
explicit
basic_regex(const basic_string<_Ch_type, _Ch_traits, _Ch_alloc>& __s,
flag_type __f = regex_constants::ECMAScript)
- : _M_flags(__f), _M_pattern(__s), _M_mark_count(0)
+ : _M_flags(__f), _M_pattern(__s.begin(), __s.end()), _M_mark_count(0)
{ _M_compile(); }
/**
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
index c2fb2c7..39cce6c 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
@@ -25,6 +25,7 @@
#include <string>
#include <tr1/regex>
#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
// Tests C++ string constructor of the basic_regex class.
void test01()
@@ -35,9 +36,19 @@ void test01()
test_type re(s);
}
+void test02()
+{
+ typedef std::tr1::basic_regex<char> test_type;
+ typedef __gnu_test::tracker_allocator<char> alloc_type;
+
+ std::basic_string<char, std::char_traits<char>, alloc_type> s("a*b");
+ test_type re(s);
+}
+
int
main()
{
test01();
+ test02();
return 0;
};
diff --git a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
index bcedd49..9e6a9ad 100644
--- a/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
+++ b/libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
@@ -25,6 +25,7 @@
#include <string>
#include <tr1/regex>
#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
// Tests C++ string constructor of the basic_regex class.
void test01()
@@ -35,9 +36,19 @@ void test01()
test_type re(s);
}
+void test02()
+{
+ typedef std::tr1::basic_regex<wchar_t> test_type;
+ typedef __gnu_test::tracker_allocator<wchar_t> alloc_type;
+
+ std::basic_string<wchar_t, std::char_traits<wchar_t>, alloc_type> s(L"a*b");
+ test_type re(s);
+}
+
int
main()
{
test01();
+ test02();
return 0;
};