diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2016-09-26 11:17:48 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2016-09-26 11:17:48 +0100 |
commit | 976160b962fce53f5ed3fe833af1c9d729327bfb (patch) | |
tree | 502c14614a65f7e17fcb560f95428e84fe0debde | |
parent | a38814c0038fb4bf756547a3f50d125da0066737 (diff) | |
download | gcc-976160b962fce53f5ed3fe833af1c9d729327bfb.zip gcc-976160b962fce53f5ed3fe833af1c9d729327bfb.tar.gz gcc-976160b962fce53f5ed3fe833af1c9d729327bfb.tar.bz2 |
Add assertions to extract(const_iterator) functions
* include/bits/stl_map.h (map::extract(const_iterator)): Assert that
iterator is not past-the-end.
* include/bits/stl_multimap.h (multimap::extract(const_iterator)):
Likewise.
* include/bits/stl_multiset.h (multiset::extract(const_iterator)):
Likewise.
* include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
* include/bits/unordered_map.h (unordered_map::extract(const_iterator))
(unordered_multimap::extract(const_iterator)): Likewise.
* include/bits/unordered_set.h (unordered_set::extract(const_iterator))
(unordered_multiset::extract(const_iterator)): Likewise.
From-SVN: r240487
-rw-r--r-- | libstdc++-v3/ChangeLog | 14 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_map.h | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_multimap.h | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_multiset.h | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_set.h | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/unordered_map.h | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/unordered_set.h | 10 |
7 files changed, 46 insertions, 8 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e3e26d1..04ec1f1 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,17 @@ +2016-09-26 Jonathan Wakely <jwakely@redhat.com> + + * include/bits/stl_map.h (map::extract(const_iterator)): Assert that + iterator is not past-the-end. + * include/bits/stl_multimap.h (multimap::extract(const_iterator)): + Likewise. + * include/bits/stl_multiset.h (multiset::extract(const_iterator)): + Likewise. + * include/bits/stl_set.h (set::extract(const_iterator)): Likewise. + * include/bits/unordered_map.h (unordered_map::extract(const_iterator)) + (unordered_multimap::extract(const_iterator)): Likewise. + * include/bits/unordered_set.h (unordered_set::extract(const_iterator)) + (unordered_multiset::extract(const_iterator)): Likewise. + 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com> PR libstdc++/77717 diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h index f9482e2..9a0454a 100644 --- a/libstdc++-v3/include/bits/stl_map.h +++ b/libstdc++-v3/include/bits/stl_map.h @@ -605,7 +605,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_t.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_t.extract(__pos); + } /// Extract a node. node_type diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h index 2b56824..c794b9b 100644 --- a/libstdc++-v3/include/bits/stl_multimap.h +++ b/libstdc++-v3/include/bits/stl_multimap.h @@ -606,7 +606,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_t.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_t.extract(__pos); + } /// Extract a node. node_type diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h index d7312df..d3219eb 100644 --- a/libstdc++-v3/include/bits/stl_multiset.h +++ b/libstdc++-v3/include/bits/stl_multiset.h @@ -549,7 +549,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_t.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_t.extract(__pos); + } /// Extract a node. node_type diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h index fd96dd4..140db39 100644 --- a/libstdc++-v3/include/bits/stl_set.h +++ b/libstdc++-v3/include/bits/stl_set.h @@ -565,7 +565,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_t.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_t.extract(__pos); + } /// Extract a node. node_type diff --git a/libstdc++-v3/include/bits/unordered_map.h b/libstdc++-v3/include/bits/unordered_map.h index ab8a762..6776090 100644 --- a/libstdc++-v3/include/bits/unordered_map.h +++ b/libstdc++-v3/include/bits/unordered_map.h @@ -421,7 +421,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_h.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_h.extract(__pos); + } /// Extract a node. node_type @@ -1534,7 +1537,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_h.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_h.extract(__pos); + } /// Extract a node. node_type diff --git a/libstdc++-v3/include/bits/unordered_set.h b/libstdc++-v3/include/bits/unordered_set.h index e5bb2be..9905257 100644 --- a/libstdc++-v3/include/bits/unordered_set.h +++ b/libstdc++-v3/include/bits/unordered_set.h @@ -482,7 +482,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_h.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_h.extract(__pos); + } /// Extract a node. node_type @@ -1190,7 +1193,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Extract a node. node_type extract(const_iterator __pos) - { return _M_h.extract(__pos); } + { + __glibcxx_assert(__pos != end()); + return _M_h.extract(__pos); + } /// Extract a node. node_type |