1824c19963e0263366047787b024a992afc2b1c54Howard Hinnant//===----------------------------------------------------------------------===//
2824c19963e0263366047787b024a992afc2b1c54Howard Hinnant//
3824c19963e0263366047787b024a992afc2b1c54Howard Hinnant//                     The LLVM Compiler Infrastructure
4824c19963e0263366047787b024a992afc2b1c54Howard Hinnant//
5824c19963e0263366047787b024a992afc2b1c54Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6824c19963e0263366047787b024a992afc2b1c54Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
7824c19963e0263366047787b024a992afc2b1c54Howard Hinnant//
8824c19963e0263366047787b024a992afc2b1c54Howard Hinnant//===----------------------------------------------------------------------===//
9824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
10824c19963e0263366047787b024a992afc2b1c54Howard Hinnant// <unordered_map>
11824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
12824c19963e0263366047787b024a992afc2b1c54Howard Hinnant// Call erase(const_iterator first, const_iterator last); with a bad range
13824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
145e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1
15824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
16824c19963e0263366047787b024a992afc2b1c54Howard Hinnant#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
17824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
18824c19963e0263366047787b024a992afc2b1c54Howard Hinnant#include <unordered_map>
19824c19963e0263366047787b024a992afc2b1c54Howard Hinnant#include <cassert>
20824c19963e0263366047787b024a992afc2b1c54Howard Hinnant#include <exception>
21824c19963e0263366047787b024a992afc2b1c54Howard Hinnant#include <cstdlib>
22824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
23824c19963e0263366047787b024a992afc2b1c54Howard Hinnantint main()
24824c19963e0263366047787b024a992afc2b1c54Howard Hinnant{
25824c19963e0263366047787b024a992afc2b1c54Howard Hinnant    {
26824c19963e0263366047787b024a992afc2b1c54Howard Hinnant    typedef std::pair<int, int> P;
27824c19963e0263366047787b024a992afc2b1c54Howard Hinnant    P a1[] = {P(1, 1), P(2, 2), P(3, 3)};
28824c19963e0263366047787b024a992afc2b1c54Howard Hinnant    std::unordered_map<int, int> l1(a1, a1+3);
29824c19963e0263366047787b024a992afc2b1c54Howard Hinnant    std::unordered_map<int, int>::iterator i = l1.erase(next(l1.cbegin()), l1.cbegin());
30824c19963e0263366047787b024a992afc2b1c54Howard Hinnant    assert(false);
31824c19963e0263366047787b024a992afc2b1c54Howard Hinnant    }
32824c19963e0263366047787b024a992afc2b1c54Howard Hinnant}
33824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
34824c19963e0263366047787b024a992afc2b1c54Howard Hinnant#else
35824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
36824c19963e0263366047787b024a992afc2b1c54Howard Hinnantint main()
37824c19963e0263366047787b024a992afc2b1c54Howard Hinnant{
38824c19963e0263366047787b024a992afc2b1c54Howard Hinnant}
39824c19963e0263366047787b024a992afc2b1c54Howard Hinnant
40824c19963e0263366047787b024a992afc2b1c54Howard Hinnant#endif
41