10bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant//===----------------------------------------------------------------------===// 20bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// 30bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// The LLVM Compiler Infrastructure 40bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// 50bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 60bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// Source Licenses. See LICENSE.TXT for details. 70bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// 80bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant//===----------------------------------------------------------------------===// 90bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 100bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// <unordered_set> 110bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 120bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant// Dereference non-dereferenceable iterator. 130bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 145e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1 150bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 160bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0)) 170bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 180bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#include <unordered_set> 190bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#include <cassert> 200bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#include <iterator> 210bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#include <exception> 220bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#include <cstdlib> 230bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 24061d0cc4db18d17bf01ed14c5db0be098205bd47Marshall Clow#include "min_allocator.h" 250bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 260bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnantint main() 270bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant{ 280bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant { 290bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant typedef int T; 300bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant typedef std::unordered_multiset<T> C; 310bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant C c(1); 320bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant C::iterator i = c.end(); 330bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant T j = *i; 340bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant assert(false); 350bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant } 360bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#if __cplusplus >= 201103L 370bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant { 380bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant typedef int T; 390bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant typedef std::unordered_multiset<T, min_allocator<T>> C; 400bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant C c(1); 410bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant C::iterator i = c.end(); 420bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant T j = *i; 430bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant assert(false); 440bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant } 450bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#endif 460bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant} 470bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 480bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#else 490bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 500bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnantint main() 510bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant{ 520bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant} 530bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant 540bb0a7c9ea7dc2852c9bfb38584f4673ada25e2aHoward Hinnant#endif 55