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 front() on empty const 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    const C c;
32d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant    assert(c.front() == 0);
33d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant    assert(false);
3429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    }
3529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant#if __cplusplus >= 201103L
3629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    {
3729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    typedef int T;
3829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    typedef std::list<T, min_allocator<T>> C;
3929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    const C c;
4029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    assert(c.front() == 0);
4129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    assert(false);
4229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant    }
4329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant#endif
44d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant}
45d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant
46d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#else
47d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant
48d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnantint main()
49d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant{
50d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant}
51d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant
52d4c96a6c8924d9843432ccb1716a20b9925626aaHoward Hinnant#endif
53