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