15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// <string>
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// const_reverse_iterator crend() const;
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <cassert>
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "min_allocator.h"
18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochtemplate <class S>
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)test(const S& s)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    typename S::const_reverse_iterator ce = s.crend();
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    assert(ce == s.rend());
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main()
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    typedef std::string S;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test(S());
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test(S("123"));
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    }
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#if __cplusplus >= 201103L
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    {
366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    test(S());
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    test(S("123"));
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)