diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 121ac771e64..4c9dc052244 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2015-01-02 Tim Shen + + 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 PR libstdc++/64422 diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc index 7954d06eb3f..a9736675bf6 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;