re PR libstdc++/64441 (A match_results returns an incorrect sub_match if the sub_matc...
authorTim Shen <timshen@google.com>
Tue, 10 Mar 2015 18:41:46 +0000 (18:41 +0000)
committerTim Shen <timshen@gcc.gnu.org>
Tue, 10 Mar 2015 18:41:46 +0000 (18:41 +0000)
commit84839a5140a8c0c72626f8b08157fe3cb8c6b326
tree6fefe0bed48a4affec5e16ccff708e752acebcc1
parent9315dff064f2ddbbc159d5afcee176cab06bfcba
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.h (match_results<>::size,
match_results<>::position, match_results<>::str,
match_results<>::operator[], match_results<>::prefix,
match_results<>::suffix, match_results<>::end,
match_results<>::_M_resize, match_results<>::_M_unmatched_sub,
match_results<>::_M_prefix, match_results<>::_M_suffix): Remove
global __unmatched_sub. Add unmatched submatch as part of
match_results.
* include/bits/regex.tcc (__regex_algo_impl<>, regex_replace<>,
regex_iterator<>::operator++): Adjust to use match_results::_M_prefix.
* testsuite/28_regex/match_results/out_of_range_submatches.cc:
New testcases.

From-SVN: r221330
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/regex.h
libstdc++-v3/include/bits/regex.tcc
libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc [new file with mode: 0644]