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