aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-09-19 12:20:51 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2018-09-19 12:20:51 +0100
commitdc9acaa99b9e6b3553f64b362cd22f32e961d3dc (patch)
tree3bc222ed4f244f571335014c953f17367654cd81
parent3c5af60836eed835b818f2a87480155a497139a4 (diff)
downloadgcc-dc9acaa99b9e6b3553f64b362cd22f32e961d3dc.zip
gcc-dc9acaa99b9e6b3553f64b362cd22f32e961d3dc.tar.gz
gcc-dc9acaa99b9e6b3553f64b362cd22f32e961d3dc.tar.bz2
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
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/regex_automaton.tcc13
2 files changed, 9 insertions, 10 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 433bcdd..5911a29 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+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
diff --git a/libstdc++-v3/include/bits/regex_automaton.tcc b/libstdc++-v3/include/bits/regex_automaton.tcc
index 7a0e6a3..5993fcf 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]);
}