diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:08 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:08 +0000 |
| commit | 0564cdb94a7a1facbb0dbf888ceb90638aa70ecd (patch) | |
| tree | 3ccbf1ba827928fca93419d0b6cf83ce0f650f2a /test/std/containers/associative/map | |
| parent | dbabdb5220c44e5938d404eefb84b5ed55667ea8 (diff) | |
Notes
Diffstat (limited to 'test/std/containers/associative/map')
24 files changed, 78 insertions, 36 deletions
diff --git a/test/std/containers/associative/map/map.access/at.pass.cpp b/test/std/containers/associative/map/map.access/at.pass.cpp index 6d3e98e9e78b0..5822706fbfb33 100644 --- a/test/std/containers/associative/map/map.access/at.pass.cpp +++ b/test/std/containers/associative/map/map.access/at.pass.cpp @@ -46,7 +46,7 @@ int main() #ifndef TEST_HAS_NO_EXCEPTIONS try { - m.at(6); + TEST_IGNORE_NODISCARD m.at(6); assert(false); } catch (std::out_of_range&) @@ -79,7 +79,7 @@ int main() #ifndef TEST_HAS_NO_EXCEPTIONS try { - m.at(6); + TEST_IGNORE_NODISCARD m.at(6); assert(false); } catch (std::out_of_range&) @@ -115,7 +115,7 @@ int main() #ifndef TEST_HAS_NO_EXCEPTIONS try { - m.at(6); + TEST_IGNORE_NODISCARD m.at(6); assert(false); } catch (std::out_of_range&) @@ -148,7 +148,7 @@ int main() #ifndef TEST_HAS_NO_EXCEPTIONS try { - m.at(6); + TEST_IGNORE_NODISCARD m.at(6); assert(false); } catch (std::out_of_range&) diff --git a/test/std/containers/associative/map/map.access/empty.fail.cpp b/test/std/containers/associative/map/map.access/empty.fail.cpp new file mode 100644 index 0000000000000..14ac13c996886 --- /dev/null +++ b/test/std/containers/associative/map/map.access/empty.fail.cpp @@ -0,0 +1,28 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <map> + +// class map + +// bool empty() const noexcept; + +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8 + +#include <map> + +#include "test_macros.h" + +int main () +{ + std::map<int, int> c; + c.empty(); // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}} +} diff --git a/test/std/containers/associative/map/map.cons/compare.pass.cpp b/test/std/containers/associative/map/map.cons/compare.pass.cpp index 5d8d5e2525074..326ce74fc39c2 100644 --- a/test/std/containers/associative/map/map.cons/compare.pass.cpp +++ b/test/std/containers/associative/map/map.cons/compare.pass.cpp @@ -13,6 +13,8 @@ // explicit map(const key_compare& comp); +// key_compare key_comp() const; + #include <map> #include <cassert> @@ -23,7 +25,7 @@ int main() { { typedef test_compare<std::less<int> > C; - std::map<int, double, C> m(C(3)); + const std::map<int, double, C> m(C(3)); assert(m.empty()); assert(m.begin() == m.end()); assert(m.key_comp() == C(3)); @@ -31,7 +33,7 @@ int main() #if TEST_STD_VER >= 11 { typedef test_compare<std::less<int> > C; - std::map<int, double, C, min_allocator<std::pair<const int, double>>> m(C(3)); + const std::map<int, double, C, min_allocator<std::pair<const int, double>>> m(C(3)); assert(m.empty()); assert(m.begin() == m.end()); assert(m.key_comp() == C(3)); diff --git a/test/std/containers/associative/map/map.cons/compare_copy_constructible.fail.cpp b/test/std/containers/associative/map/map.cons/compare_copy_constructible.fail.cpp index 210c27050a60c..a1fde845e9cb5 100644 --- a/test/std/containers/associative/map/map.cons/compare_copy_constructible.fail.cpp +++ b/test/std/containers/associative/map/map.cons/compare_copy_constructible.fail.cpp @@ -16,14 +16,14 @@ template <class T> struct Comp { - bool operator () (const T& lhs, const T& rhs) const { return lhs < rhs; } + bool operator () (const T& lhs, const T& rhs) const { return lhs < rhs; } - Comp () {} + Comp () {} private: - Comp (const Comp &); // declared but not defined - }; + Comp (const Comp &); // declared but not defined + }; int main() { - std::map<int, int, Comp<int> > m; + std::map<int, int, Comp<int> > m; } diff --git a/test/std/containers/associative/map/map.ops/count0.pass.cpp b/test/std/containers/associative/map/map.ops/count0.pass.cpp index 1fa8c4a70bd9c..5649c57f25b93 100644 --- a/test/std/containers/associative/map/map.ops/count0.pass.cpp +++ b/test/std/containers/associative/map/map.ops/count0.pass.cpp @@ -30,10 +30,10 @@ int main() { { typedef std::map<int, double, transparent_less> M; - M().count(C2Int{5}); + assert(M().count(C2Int{5}) == 0); } { typedef std::map<int, double, transparent_less_not_referenceable> M; - M().count(C2Int{5}); + assert(M().count(C2Int{5}) == 0); } } diff --git a/test/std/containers/associative/map/map.ops/count1.fail.cpp b/test/std/containers/associative/map/map.ops/count1.fail.cpp index bd0bf2ec4a04f..9fa9f87b8dab3 100644 --- a/test/std/containers/associative/map/map.ops/count1.fail.cpp +++ b/test/std/containers/associative/map/map.ops/count1.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_no_type> M; - M().count(C2Int{5}); + TEST_IGNORE_NODISCARD M().count(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/count2.fail.cpp b/test/std/containers/associative/map/map.ops/count2.fail.cpp index ff4bed8cb60c2..c6380635af4e4 100644 --- a/test/std/containers/associative/map/map.ops/count2.fail.cpp +++ b/test/std/containers/associative/map/map.ops/count2.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_private> M; - M().count(C2Int{5}); + TEST_IGNORE_NODISCARD M().count(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/count3.fail.cpp b/test/std/containers/associative/map/map.ops/count3.fail.cpp index 55a463ed38a67..0fddf61b8d828 100644 --- a/test/std/containers/associative/map/map.ops/count3.fail.cpp +++ b/test/std/containers/associative/map/map.ops/count3.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_not_a_type> M; - M().count(C2Int{5}); + TEST_IGNORE_NODISCARD M().count(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/equal_range0.pass.cpp b/test/std/containers/associative/map/map.ops/equal_range0.pass.cpp index c254fb6a7db71..310db6d893745 100644 --- a/test/std/containers/associative/map/map.ops/equal_range0.pass.cpp +++ b/test/std/containers/associative/map/map.ops/equal_range0.pass.cpp @@ -30,10 +30,16 @@ int main() { { typedef std::map<int, double, transparent_less> M; - M().equal_range(C2Int{5}); + typedef std::pair<typename M::iterator, typename M::iterator> P; + M example; + P result = example.equal_range(C2Int{5}); + assert(result.first == result.second); } { typedef std::map<int, double, transparent_less_not_referenceable> M; - M().equal_range(C2Int{5}); + typedef std::pair<typename M::iterator, typename M::iterator> P; + M example; + P result = example.equal_range(C2Int{5}); + assert(result.first == result.second); } } diff --git a/test/std/containers/associative/map/map.ops/equal_range1.fail.cpp b/test/std/containers/associative/map/map.ops/equal_range1.fail.cpp index a92ad96921c19..b8c8607ee33d8 100644 --- a/test/std/containers/associative/map/map.ops/equal_range1.fail.cpp +++ b/test/std/containers/associative/map/map.ops/equal_range1.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_no_type> M; - M().equal_range(C2Int{5}); + TEST_IGNORE_NODISCARD M().equal_range(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/equal_range2.fail.cpp b/test/std/containers/associative/map/map.ops/equal_range2.fail.cpp index 23357e26897a1..2fb1b2d2e8bb5 100644 --- a/test/std/containers/associative/map/map.ops/equal_range2.fail.cpp +++ b/test/std/containers/associative/map/map.ops/equal_range2.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_private> M; - M().equal_range(C2Int{5}); + TEST_IGNORE_NODISCARD M().equal_range(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/equal_range3.fail.cpp b/test/std/containers/associative/map/map.ops/equal_range3.fail.cpp index 3ffa3f22a6193..ad499e1c6cfcc 100644 --- a/test/std/containers/associative/map/map.ops/equal_range3.fail.cpp +++ b/test/std/containers/associative/map/map.ops/equal_range3.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_not_a_type> M; - M().equal_range(C2Int{5}); + TEST_IGNORE_NODISCARD M().equal_range(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/find0.pass.cpp b/test/std/containers/associative/map/map.ops/find0.pass.cpp index 76fe9242a476d..a11acb103745b 100644 --- a/test/std/containers/associative/map/map.ops/find0.pass.cpp +++ b/test/std/containers/associative/map/map.ops/find0.pass.cpp @@ -30,10 +30,12 @@ int main() { { typedef std::map<int, double, transparent_less> M; - M().find(C2Int{5}); + M example; + assert(example.find(C2Int{5}) == example.end()); } { typedef std::map<int, double, transparent_less_not_referenceable> M; - M().find(C2Int{5}); + M example; + assert(example.find(C2Int{5}) == example.end()); } } diff --git a/test/std/containers/associative/map/map.ops/find1.fail.cpp b/test/std/containers/associative/map/map.ops/find1.fail.cpp index 5346821b42af7..6c0f237a24764 100644 --- a/test/std/containers/associative/map/map.ops/find1.fail.cpp +++ b/test/std/containers/associative/map/map.ops/find1.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_no_type> M; - M().find(C2Int{5}); + TEST_IGNORE_NODISCARD M().find(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/find2.fail.cpp b/test/std/containers/associative/map/map.ops/find2.fail.cpp index 1dfb7fa44b064..b915b4396748a 100644 --- a/test/std/containers/associative/map/map.ops/find2.fail.cpp +++ b/test/std/containers/associative/map/map.ops/find2.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_private> M; - M().find(C2Int{5}); + TEST_IGNORE_NODISCARD M().find(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/find3.fail.cpp b/test/std/containers/associative/map/map.ops/find3.fail.cpp index f5e92b8264b7b..9303a7f07bc1b 100644 --- a/test/std/containers/associative/map/map.ops/find3.fail.cpp +++ b/test/std/containers/associative/map/map.ops/find3.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_not_a_type> M; - M().find(C2Int{5}); + TEST_IGNORE_NODISCARD M().find(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/lower_bound0.pass.cpp b/test/std/containers/associative/map/map.ops/lower_bound0.pass.cpp index de7a545b64974..2936da3cb4413 100644 --- a/test/std/containers/associative/map/map.ops/lower_bound0.pass.cpp +++ b/test/std/containers/associative/map/map.ops/lower_bound0.pass.cpp @@ -30,10 +30,12 @@ int main() { { typedef std::map<int, double, transparent_less> M; - M().lower_bound(C2Int{5}); + M example; + assert(example.lower_bound(C2Int{5}) == example.end()); } { typedef std::map<int, double, transparent_less_not_referenceable> M; - M().lower_bound(C2Int{5}); + M example; + assert(example.lower_bound(C2Int{5}) == example.end()); } } diff --git a/test/std/containers/associative/map/map.ops/lower_bound1.fail.cpp b/test/std/containers/associative/map/map.ops/lower_bound1.fail.cpp index 6a3ed96a4fc5c..beb901cf07755 100644 --- a/test/std/containers/associative/map/map.ops/lower_bound1.fail.cpp +++ b/test/std/containers/associative/map/map.ops/lower_bound1.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_no_type> M; - M().lower_bound(C2Int{5}); + TEST_IGNORE_NODISCARD M().lower_bound(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/lower_bound2.fail.cpp b/test/std/containers/associative/map/map.ops/lower_bound2.fail.cpp index 87fffe7afcce9..2a2258e8f4e1f 100644 --- a/test/std/containers/associative/map/map.ops/lower_bound2.fail.cpp +++ b/test/std/containers/associative/map/map.ops/lower_bound2.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_private> M; - M().lower_bound(C2Int{5}); + TEST_IGNORE_NODISCARD M().lower_bound(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/lower_bound3.fail.cpp b/test/std/containers/associative/map/map.ops/lower_bound3.fail.cpp index fbccd3ab221ba..40dc708ad754a 100644 --- a/test/std/containers/associative/map/map.ops/lower_bound3.fail.cpp +++ b/test/std/containers/associative/map/map.ops/lower_bound3.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_not_a_type> M; - M().lower_bound(C2Int{5}); + TEST_IGNORE_NODISCARD M().lower_bound(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/upper_bound0.pass.cpp b/test/std/containers/associative/map/map.ops/upper_bound0.pass.cpp index 94508d284fd2e..fa97a71448628 100644 --- a/test/std/containers/associative/map/map.ops/upper_bound0.pass.cpp +++ b/test/std/containers/associative/map/map.ops/upper_bound0.pass.cpp @@ -30,10 +30,12 @@ int main() { { typedef std::map<int, double, transparent_less> M; - M().upper_bound(C2Int{5}); + M example; + assert(example.upper_bound(C2Int{5}) == example.end()); } { typedef std::map<int, double, transparent_less_not_referenceable> M; - M().upper_bound(C2Int{5}); + M example; + assert(example.upper_bound(C2Int{5}) == example.end()); } } diff --git a/test/std/containers/associative/map/map.ops/upper_bound1.fail.cpp b/test/std/containers/associative/map/map.ops/upper_bound1.fail.cpp index cb23588e2b97d..be40cec7612b3 100644 --- a/test/std/containers/associative/map/map.ops/upper_bound1.fail.cpp +++ b/test/std/containers/associative/map/map.ops/upper_bound1.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_no_type> M; - M().upper_bound(C2Int{5}); + TEST_IGNORE_NODISCARD M().upper_bound(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/upper_bound2.fail.cpp b/test/std/containers/associative/map/map.ops/upper_bound2.fail.cpp index 1fa4cbc700120..c03c249b73646 100644 --- a/test/std/containers/associative/map/map.ops/upper_bound2.fail.cpp +++ b/test/std/containers/associative/map/map.ops/upper_bound2.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_private> M; - M().upper_bound(C2Int{5}); + TEST_IGNORE_NODISCARD M().upper_bound(C2Int{5}); } } #endif diff --git a/test/std/containers/associative/map/map.ops/upper_bound3.fail.cpp b/test/std/containers/associative/map/map.ops/upper_bound3.fail.cpp index 0f3cea2382956..584833921e9ab 100644 --- a/test/std/containers/associative/map/map.ops/upper_bound3.fail.cpp +++ b/test/std/containers/associative/map/map.ops/upper_bound3.fail.cpp @@ -34,7 +34,7 @@ int main() { typedef std::map<int, double, transparent_less_not_a_type> M; - M().upper_bound(C2Int{5}); + TEST_IGNORE_NODISCARD M().upper_bound(C2Int{5}); } } #endif |
