From: redi Date: Wed, 19 Sep 2018 11:20:51 +0000 (+0000) Subject: Don't use __glibcxx_assert to check class invariants X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=deb2e908753c18aa3075ae792254894b508d6d75;p=thirdparty%2Fgcc.git 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[]. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264422 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 433bcdd44445..5911a297e96d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2018-09-19 Jonathan Wakely + + * 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 PR libstdc++/87135 diff --git a/libstdc++-v3/include/bits/regex_automaton.tcc b/libstdc++-v3/include/bits/regex_automaton.tcc index 7a0e6a36a7a6..5993fcfeeaf3 100644 --- a/libstdc++-v3/include/bits/regex_automaton.tcc +++ b/libstdc++-v3/include/bits/regex_automaton.tcc @@ -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]); }