1499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//===----------------------------------------------------------------------===//
2499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//
3499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//                     The LLVM Compiler Infrastructure
4499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//
5499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// Source Licenses. See LICENSE.TXT for details.
7499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//
8499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//===----------------------------------------------------------------------===//
9499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
10499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// <string>
11499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
12499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// Call back() on empty container.
13499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
145e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1
15499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
16499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
17499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
18499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include <string>
19499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include <cassert>
20499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include <iterator>
21499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include <exception>
22499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include <cstdlib>
23499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
24061d0cc4db18d17bf01ed14c5db0be098205bd47Marshall Clow#include "min_allocator.h"
25499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
26499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnantint main()
27499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant{
28499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    {
29499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    typedef std::string S;
30499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    S s(1, '\0');
31499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    assert(s.back() == 0);
32499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    s.clear();
33499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    assert(s.back() == 0);
34499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    assert(false);
35499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    }
36499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#if __cplusplus >= 201103L
37499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    {
38499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
39499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    S s(1, '\0');
40499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    assert(s.back() == 0);
41499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    s.clear();
42499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    assert(s.back() == 0);
43499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    assert(false);
44499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant    }
45499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#endif
46499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant}
47499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
48499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#else
49499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
50499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnantint main()
51499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant{
52499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant}
53499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant
54499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#endif
55