diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 121ac771e64d8c9aed5ca8ff85bf2170deabb9f4..4c9dc052244ddbabbb19bbbbb572247bf7f76f7b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2015-01-02 Tim Shen <timshen@google.com> + + PR libstdc++/64475 + * include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Copy the + iterator, since the original one shouldn't be mutated. + 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de> PR libstdc++/64422 diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc index 7954d06eb3ff5183f667578b9b15a131d5ced845..a9736675bf60a70164b108fe8e5f3d05078ec58f 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;