1f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant//===----------------------------------------------------------------------===//
2f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant//
3f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant//                     The LLVM Compiler Infrastructure
4f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant//
5f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
7f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant//
8f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant//===----------------------------------------------------------------------===//
9f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
10f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant// <unordered_map>
11f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
12f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant// Call erase(const_iterator position) with end()
13f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
145e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1
15f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
16f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
17f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
18f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant#include <unordered_map>
19f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant#include <cassert>
20f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
21f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnantint main()
22f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant{
23f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    {
24f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    typedef std::pair<int, int> P;
25f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    P a1[] = {P(1, 1), P(2, 2), P(3, 3)};
26f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    std::unordered_multimap<int, int> l1(a1, a1+3);
27f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    std::unordered_multimap<int, int>::const_iterator i = l1.end();
28f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    l1.erase(i);
29f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    assert(false);
30f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant    }
31f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant}
32f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
33f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant#else
34f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
35f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnantint main()
36f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant{
37f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant}
38f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant
39f890d9bfaadc13df40bb74e95cebd53ec826f932Howard Hinnant#endif
40