1d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant//===----------------------------------------------------------------------===// 2d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// 3d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// The LLVM Compiler Infrastructure 4d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// 5d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// Source Licenses. See LICENSE.TXT for details. 7d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// 8d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant//===----------------------------------------------------------------------===// 9d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 10d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// <list> 11d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 12d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant// Call back() on empty container. 13d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 145e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1 15d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 16d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0)) 17d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 18d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#include <list> 19d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#include <cassert> 20d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#include <iterator> 21d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#include <exception> 22d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#include <cstdlib> 23d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 24061d0cc4db18d17bf01ed14c5db0be098205bd47Marshall Clow#include "min_allocator.h" 2529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant 26d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnantint main() 27d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant{ 2829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 29d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant typedef int T; 30d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant typedef std::list<T> C; 31d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant C c(1); 32d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant assert(c.back() == 0); 33d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant c.clear(); 34d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant assert(c.back() == 0); 35d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant assert(false); 3629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 3729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant#if __cplusplus >= 201103L 3829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 3929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant typedef int T; 4029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant typedef std::list<T, min_allocator<T>> C; 4129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant C c(1); 4229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(c.back() == 0); 4329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant c.clear(); 4429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(c.back() == 0); 4529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(false); 4629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 4729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant#endif 48d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant} 49d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 50d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#else 51d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 52d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnantint main() 53d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant{ 54d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant} 55d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant 56d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#endif 57