1b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===//
2b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//
3b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//                     The LLVM Compiler Infrastructure
4b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//
5b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// This file is dual licensed under the MIT and the University of Illinois Open
6b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Source Licenses. See LICENSE.TXT for details.
7b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//
8b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===//
9b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
105de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh// <unordered_map>
11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
125de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh// Dereference non-dereferenceable iterator.
13a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner
145de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh#if _LIBCPP_DEBUG >= 1
15a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner
16a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
17a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner
185de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh#include <unordered_map>
195de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh#include <string>
20a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner#include <cassert>
21a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner#include <iterator>
22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <exception>
23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cstdlib>
24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
255de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh#include "min_allocator.h"
26ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner
27a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turnerint main()
28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{
29ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner    {
305de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    typedef std::unordered_multimap<int, std::string> C;
315de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    C c(1);
325de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    C::local_iterator i = c.end(0);
335de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    C::value_type j = *i;
34a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner    assert(false);
35ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner    }
36ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner#if __cplusplus >= 201103L
37ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner    {
385de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    typedef std::unordered_multimap<int, std::string, std::hash<int>, std::equal_to<int>,
395de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh                        min_allocator<std::pair<const int, std::string>>> C;
405de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    C c(1);
415de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    C::local_iterator i = c.end(0);
425de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh    C::value_type j = *i;
43ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner    assert(false);
44ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner    }
45ad46d2248426e810edc5878c7cb086b7093f3cf5David 'Digit' Turner#endif
46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}
47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
48a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner#else
49a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner
50b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main()
51b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{
52b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}
53a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner
54a8bf9de8057ad254cc642f33bd7d0a48dc1ae55cDavid 'Digit' Turner#endif
55