Commit dc9acaa9 by Jonathan Wakely Committed by Jonathan Wakely

Don't use __glibcxx_assert to check class invariants

Assertions should be used to check preconditions that users must meet,
not to check whether the implementation is correct.

	* include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
	Remove __glibcxx_assert statements and use map::find instead of
	map::operator[].

From-SVN: r264422
parent 3c5af608
2018-09-19 Jonathan Wakely <jwakely@redhat.com>
* include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
Remove __glibcxx_assert statements and use map::find instead of
map::operator[].
2018-09-18 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/87135
......
......@@ -220,16 +220,9 @@ namespace __detail
auto __v = __it.second;
auto& __ref = _M_nfa[__v];
if (__ref._M_next != _S_invalid_state_id)
{
__glibcxx_assert(__m.count(__ref._M_next) > 0);
__ref._M_next = __m[__ref._M_next];
}
if (__ref._M_has_alt())
if (__ref._M_alt != _S_invalid_state_id)
{
__glibcxx_assert(__m.count(__ref._M_alt) > 0);
__ref._M_alt = __m[__ref._M_alt];
}
__ref._M_next = __m.find(__ref._M_next)->second;
if (__ref._M_has_alt() && __ref._M_alt != _S_invalid_state_id)
__ref._M_alt = __m.find(__ref._M_alt)->second;
}
return _StateSeq(_M_nfa, __m[_M_start], __m[_M_end]);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment