diff options
author | Tim Shen <timshen@google.com> | 2014-12-31 10:27:41 +0000 |
---|---|---|
committer | Tim Shen <timshen@gcc.gnu.org> | 2014-12-31 10:27:41 +0000 |
commit | ec5f010299aeae689871053d9f2164a9ea7f3a87 (patch) | |
tree | 6591e46f0a11de878f6c1ba295dfeb7735e647bd /libstdc++-v3 | |
parent | 54ba5c5c679c4d9cc1a2c85f92917713a1a3135a (diff) | |
download | gcc-ec5f010299aeae689871053d9f2164a9ea7f3a87.zip gcc-ec5f010299aeae689871053d9f2164a9ea7f3a87.tar.gz gcc-ec5f010299aeae689871053d9f2164a9ea7f3a87.tar.bz2 |
re PR libstdc++/64441 (A match_results returns an incorrect sub_match if the sub_match::matched is false)
PR libstdc++/64441
* include/bits/regex.tcc (__regex_algo_impl): s/auto/auto&/.
* include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Likewise.
From-SVN: r219121
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/regex.tcc | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/regex_executor.tcc | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5974731..cb01af0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2014-12-31 Tim Shen <timshen@google.com> + + PR libstdc++/64441 + * include/bits/regex.tcc (__regex_algo_impl): s/auto/auto&/. + * include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Likewise. + 2014-12-28 David Edelsohn <dje.gcc@gmail.com> * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: diff --git a/libstdc++-v3/include/bits/regex.tcc b/libstdc++-v3/include/bits/regex.tcc index 0206a6c..b541446 100644 --- a/libstdc++-v3/include/bits/regex.tcc +++ b/libstdc++-v3/include/bits/regex.tcc @@ -96,7 +96,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } if (__ret) { - for (auto __it : __res) + for (auto& __it : __res) if (!__it.matched) __it.first = __it.second = __e; auto& __pre = __res[__res.size()-2]; diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc index a973667..7954d06 100644 --- a/libstdc++-v3/include/bits/regex_executor.tcc +++ b/libstdc++-v3/include/bits/regex_executor.tcc @@ -310,7 +310,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (!__submatch.matched) break; auto __last = _M_current; - for (auto __tmp = __submatch.first; + for (auto& __tmp = __submatch.first; __last != _M_end && __tmp != __submatch.second; ++__tmp) ++__last; |