diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ead095e786a..e240505e352 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2013-09-28 Tim Shen + + * include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_posix): + Let ordinary char escaping in POSIX be valid. + * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Test this + change. + 2013-09-27 François Dumont * include/bits/predefined_ops.h: New. diff --git a/libstdc++-v3/include/bits/regex_scanner.tcc b/libstdc++-v3/include/bits/regex_scanner.tcc index e0dff9009c6..fc8273878ce 100644 --- a/libstdc++-v3/include/bits/regex_scanner.tcc +++ b/libstdc++-v3/include/bits/regex_scanner.tcc @@ -457,7 +457,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _M_value.assign(1, __c); } else - __throw_regex_error(regex_constants::error_escape); + { +#ifdef __STRICT_ANSI__ + __throw_regex_error(regex_constants::error_escape); +#else + _M_token = _S_token_ord_char; + _M_value.assign(1, __c); +#endif + } ++_M_current; } diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc index 68fd56af760..d005dc040eb 100644 --- a/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc @@ -1,5 +1,4 @@ -// { dg-options "-std=c++0x" } -// { dg-do run { xfail *-*-* } } +// { dg-options "-std=gnu++11" } // 2012-08-20 Benjamin Kosnik //