This simply applies Howard's commit
4c80bfbd53caf consistently
across all the associative and unordered container tests.
"unord.set/insert_hint_const_lvalue.pass.cpp" failed with `-D_LIBCPP_DEBUG=1`
before this patch; it was the only one that incorrectly reused
invalid iterator `e`. The others already used valid iterators
(generally `c.end()`); I'm just making them all match the same pattern
of usage: "e, then r, then c.end() for the rest."
Differential Revision: https://reviews.llvm.org/D101679
assert(r->second == 3);
const VT v2(3.5, 4);
- r = c.insert(c.end(), v2);
+ r = c.insert(r, v2);
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(c.end(), P(3.5, static_cast<short>(4)));
+ r = c.insert(r, P(3.5, static_cast<short>(4)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
assert(r->first == 3);
assert(r->second == 3);
- r = c.insert(c.end(), P(3, 4));
+ r = c.insert(r, P(3, 4));
assert(c.size() == 1);
assert(r->first == 3);
assert(r->second == 3);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(c.end(), P(3.5, static_cast<short>(4)));
+ r = c.insert(r, P(3.5, static_cast<short>(4)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
assert(r->first == 3);
assert(r->second == 3);
- r = c.insert(c.end(), P(3, 4));
+ r = c.insert(r, P(3, 4));
assert(c.size() == 1);
assert(r->first == 3);
assert(r->second == 3);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(c.end(), {3.5, 4});
+ r = c.insert(r, {3.5, 4});
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
assert(r->second == 3);
const VT v2(3.5, 4);
- r = c.insert(c.end(), v2);
+ r = c.insert(r, v2);
assert(c.size() == 2);
assert(r->first == 3.5);
assert(r->second == 4);
assert(c.size() == 1);
assert(*r == 3.5);
- r = c.insert(c.end(), v1);
+ r = c.insert(r, v1);
assert(c.size() == 2);
assert(*r == 3.5);
//
//===----------------------------------------------------------------------===//
-// UNSUPPORTED: LIBCXX-DEBUG-FIXME
-
// <unordered_set>
// template <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,
assert(c.size() == 1);
assert(*r == 3.5);
- r = c.insert(e, v1);
+ r = c.insert(r, v1);
assert(c.size() == 1);
assert(*r == 3.5);
const VT v2(4.5);
- r = c.insert(e, v2);
+ r = c.insert(c.end(), v2);
assert(c.size() == 2);
assert(*r == 4.5);
const VT v3(5.5);
- r = c.insert(e, v3);
+ r = c.insert(c.end(), v3);
assert(c.size() == 3);
assert(*r == 5.5);
}
typedef C::iterator R;
typedef double P;
C c;
- R r = c.insert(c.end(), P(3.5));
+ typename C::const_iterator e = c.end();
+ R r = c.insert(e, P(3.5));
assert(c.size() == 1);
assert(*r == 3.5);
typedef C::iterator R;
typedef MoveOnly P;
C c;
- R r = c.insert(c.end(), P(3));
+ typename C::const_iterator e = c.end();
+ R r = c.insert(e, P(3));
assert(c.size() == 1);
assert(*r == 3);
typedef C::iterator R;
typedef double P;
C c;
- R r = c.insert(c.end(), P(3.5));
+ typename C::const_iterator e = c.end();
+ R r = c.insert(e, P(3.5));
assert(c.size() == 1);
assert(*r == 3.5);
typedef C::iterator R;
typedef MoveOnly P;
C c;
- R r = c.insert(c.end(), P(3));
+ typename C::const_iterator e = c.end();
+ R r = c.insert(e, P(3));
assert(c.size() == 1);
assert(*r == 3);