1e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//===-------------------------- ios.cpp -----------------------------------===//
2e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//
3e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//                     The LLVM Compiler Infrastructure
4e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//
5e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// This file is dual licensed under the MIT and the University of Illinois Open
6e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// Source Licenses. See LICENSE.TXT for details.
7e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//
8e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//===----------------------------------------------------------------------===//
9e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
10e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "__config"
11e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
12e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#undef _LIBCPP_EXTERN_TEMPLATE
13e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
14e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
15e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "ios"
16e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
17e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include <stdlib.h>
18e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
19e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "__locale"
20e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "algorithm"
21e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "include/config_elast.h"
22e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "istream"
23e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "limits"
24e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "memory"
25e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "new"
26e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "streambuf"
27e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "string"
28e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "__undef_macros"
29e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
30e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot_LIBCPP_BEGIN_NAMESPACE_STD
31e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
32e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<char>;
33e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<wchar_t>;
34e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
35e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<char>;
36e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<wchar_t>;
37e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
38e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<char>;
39e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<wchar_t>;
40e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
41e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<char>;
42e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<wchar_t>;
43e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
44e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_iostream<char>;
45e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
46e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotclass _LIBCPP_HIDDEN __iostream_category
47e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    : public __do_message
48e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
49e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotpublic:
50e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    virtual const char* name() const _NOEXCEPT;
51e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    virtual string message(int ev) const;
52e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot};
53e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
54e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst char*
55e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot__iostream_category::name() const _NOEXCEPT
56e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
57e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return "iostream";
58e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
59e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
60e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotstring
61e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot__iostream_category::message(int ev) const
62e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
63e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (ev != static_cast<int>(io_errc::stream)
64e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifdef _LIBCPP_ELAST
65e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        && ev <= _LIBCPP_ELAST
66e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_ELAST
67e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        )
68e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        return __do_message::message(ev);
69e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return string("unspecified iostream_category error");
70e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
71e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
72e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst error_category&
73e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotiostream_category() _NOEXCEPT
74e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
75e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    static __iostream_category s;
76e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return s;
77e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
78e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
79e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// ios_base::failure
80e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
81e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::failure::failure(const string& msg, const error_code& ec)
82e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    : system_error(ec, msg)
83e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
84e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
85e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
86e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::failure::failure(const char* msg, const error_code& ec)
87e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    : system_error(ec, msg)
88e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
89e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
90e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
91e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::failure::~failure() throw()
92e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
93e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
94e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
95e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// ios_base locale
96e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
97e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::boolalpha;
98e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::dec;
99e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::fixed;
100e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::hex;
101e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::internal;
102e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::left;
103e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::oct;
104e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::right;
105e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::scientific;
106e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::showbase;
107e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::showpoint;
108e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::showpos;
109e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::skipws;
110e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::unitbuf;
111e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::uppercase;
112e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::adjustfield;
113e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::basefield;
114e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::floatfield;
115e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
116e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::badbit;
117e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::eofbit;
118e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::failbit;
119e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::goodbit;
120e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
121e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::app;
122e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::ate;
123e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::binary;
124e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::in;
125e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::out;
126e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::trunc;
127e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
128e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
129e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::__call_callbacks(event ev)
130e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
131e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    for (size_t i = __event_size_; i;)
132e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
133e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        --i;
134e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __fn_[i](ev, *this, __index_[i]);
135e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
136e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
137e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
138e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// locale
139e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
140e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotlocale
141e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::imbue(const locale& newloc)
142e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
143e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    static_assert(sizeof(locale) == sizeof(__loc_), "");
144e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    locale& loc_storage = *reinterpret_cast<locale*>(&__loc_);
145e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    locale oldloc = loc_storage;
146e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    loc_storage = newloc;
147e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __call_callbacks(imbue_event);
148e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return oldloc;
149e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
150e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
151e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotlocale
152e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::getloc() const
153e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
154e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    const locale& loc_storage = *reinterpret_cast<const locale*>(&__loc_);
155e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return loc_storage;
156e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
157e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
158e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// xalloc
159e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#if defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_NO_THREADS)
160e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotatomic<int> ios_base::__xindex_ = ATOMIC_VAR_INIT(0);
161e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#else
162e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotint ios_base::__xindex_ = 0;
163e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif
164e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
165e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate <typename _Tp>
166e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotstatic size_t __ios_new_cap(size_t __req_size, size_t __current_cap)
167e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ // Precondition: __req_size > __current_cap
168e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot	const size_t mx = std::numeric_limits<size_t>::max() / sizeof(_Tp);
169e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot	if (__req_size < mx/2)
170e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot		return _VSTD::max(2 * __current_cap, __req_size);
171e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot	else
172e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot		return mx;
173e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
174e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
175e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotint
176e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::xalloc()
177e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
178e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return __xindex_++;
179e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
180e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
181e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotlong&
182e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::iword(int index)
183e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
184e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    size_t req_size = static_cast<size_t>(index)+1;
185e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (req_size > __iarray_cap_)
186e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
187e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        size_t newcap = __ios_new_cap<long>(req_size, __iarray_cap_);
188e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        long* iarray = static_cast<long*>(realloc(__iarray_, newcap * sizeof(long)));
189e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (iarray == 0)
190e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        {
191e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            setstate(badbit);
192e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            static long error;
193e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            error = 0;
194e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            return error;
195e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        }
196e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __iarray_ = iarray;
197e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        for (long* p = __iarray_ + __iarray_size_; p < __iarray_ + newcap; ++p)
198e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            *p = 0;
199e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __iarray_cap_ = newcap;
200e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
201e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __iarray_size_ = max<size_t>(__iarray_size_, req_size);
202e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return __iarray_[index];
203e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
204e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
205e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid*&
206e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::pword(int index)
207e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
208e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    size_t req_size = static_cast<size_t>(index)+1;
209e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (req_size > __parray_cap_)
210e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
211e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        size_t newcap = __ios_new_cap<void *>(req_size, __iarray_cap_);
212e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        void** parray = static_cast<void**>(realloc(__parray_, newcap * sizeof(void *)));
213e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (parray == 0)
214e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        {
215e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            setstate(badbit);
216e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            static void* error;
217e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            error = 0;
218e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            return error;
219e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        }
220e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __parray_ = parray;
221e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        for (void** p = __parray_ + __parray_size_; p < __parray_ + newcap; ++p)
222e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            *p = 0;
223e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __parray_cap_ = newcap;
224e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
225e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __parray_size_ = max<size_t>(__parray_size_, req_size);
226e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return __parray_[index];
227e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
228e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
229e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// register_callback
230e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
231e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
232e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::register_callback(event_callback fn, int index)
233e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
234e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    size_t req_size = __event_size_ + 1;
235e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (req_size > __event_cap_)
236e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
237e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        size_t newcap = __ios_new_cap<event_callback>(req_size, __event_cap_);
238e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        event_callback* fns = static_cast<event_callback*>(realloc(__fn_, newcap * sizeof(event_callback)));
239e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (fns == 0)
240e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            setstate(badbit);
241e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __fn_ = fns;
242e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        int* indxs = static_cast<int *>(realloc(__index_, newcap * sizeof(int)));
243e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (indxs == 0)
244e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            setstate(badbit);
245e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __index_ = indxs;
246e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __event_cap_ = newcap;
247e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
248e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __fn_[__event_size_] = fn;
249e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __index_[__event_size_] = index;
250e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    ++__event_size_;
251e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
252e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
253e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::~ios_base()
254e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
255e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __call_callbacks(erase_event);
256e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    locale& loc_storage = *reinterpret_cast<locale*>(&__loc_);
257e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    loc_storage.~locale();
258e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    free(__fn_);
259e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    free(__index_);
260e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    free(__iarray_);
261e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    free(__parray_);
262e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
263e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
264e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// iostate
265e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
266e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
267e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::clear(iostate state)
268e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
269e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__rdbuf_)
270e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __rdstate_ = state;
271e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    else
272e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __rdstate_ = state | badbit;
273e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS
274e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (((state | (__rdbuf_ ? goodbit : badbit)) & __exceptions_) != 0)
275e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        throw failure("ios_base::clear");
276e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_NO_EXCEPTIONS
277e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
278e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
279e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// init
280e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
281e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
282e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::init(void* sb)
283e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
284e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __rdbuf_ = sb;
285e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __rdstate_ = __rdbuf_ ? goodbit : badbit;
286e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __exceptions_ = goodbit;
287e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __fmtflags_ = skipws | dec;
288e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __width_ = 0;
289e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __precision_ = 6;
290e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __fn_ = 0;
291e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __index_ = 0;
292e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __event_size_ = 0;
293e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __event_cap_ = 0;
294e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __iarray_ = 0;
295e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __iarray_size_ = 0;
296e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __iarray_cap_ = 0;
297e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __parray_ = 0;
298e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __parray_size_ = 0;
299e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __parray_cap_ = 0;
300e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    ::new(&__loc_) locale;
301e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
302e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
303e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
304e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::copyfmt(const ios_base& rhs)
305e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
306e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    // If we can't acquire the needed resources, throw bad_alloc (can't set badbit)
307e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    // Don't alter *this until all needed resources are acquired
308e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    unique_ptr<event_callback, void (*)(void*)> new_callbacks(0, free);
309e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    unique_ptr<int, void (*)(void*)> new_ints(0, free);
310e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    unique_ptr<long, void (*)(void*)> new_longs(0, free);
311e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    unique_ptr<void*, void (*)(void*)> new_pointers(0, free);
312e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__event_cap_ < rhs.__event_size_)
313e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
314e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        size_t newesize = sizeof(event_callback) * rhs.__event_size_;
315e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        new_callbacks.reset(static_cast<event_callback*>(malloc(newesize)));
316e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS
317e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (!new_callbacks)
318e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            throw bad_alloc();
319e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_NO_EXCEPTIONS
320e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
321e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        size_t newisize = sizeof(int) * rhs.__event_size_;
322e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        new_ints.reset(static_cast<int *>(malloc(newisize)));
323e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS
324e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (!new_ints)
325e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            throw bad_alloc();
326e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_NO_EXCEPTIONS
327e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
328e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__iarray_cap_ < rhs.__iarray_size_)
329e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
330e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        size_t newsize = sizeof(long) * rhs.__iarray_size_;
331e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        new_longs.reset(static_cast<long*>(malloc(newsize)));
332e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS
333e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (!new_longs)
334e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            throw bad_alloc();
335e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_NO_EXCEPTIONS
336e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
337e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__parray_cap_ < rhs.__parray_size_)
338e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
339e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        size_t newsize = sizeof(void*) * rhs.__parray_size_;
340e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        new_pointers.reset(static_cast<void**>(malloc(newsize)));
341e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS
342e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        if (!new_pointers)
343e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot            throw bad_alloc();
344e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_NO_EXCEPTIONS
345e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
346e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    // Got everything we need.  Copy everything but __rdstate_, __rdbuf_ and __exceptions_
347e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __fmtflags_ = rhs.__fmtflags_;
348e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __precision_ = rhs.__precision_;
349e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __width_ = rhs.__width_;
350e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    locale& lhs_loc = *reinterpret_cast<locale*>(&__loc_);
351e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    const locale& rhs_loc = *reinterpret_cast<const locale*>(&rhs.__loc_);
352e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    lhs_loc = rhs_loc;
353e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__event_cap_ < rhs.__event_size_)
354e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
355e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        free(__fn_);
356e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __fn_ = new_callbacks.release();
357e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        free(__index_);
358e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __index_ = new_ints.release();
359e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __event_cap_ = rhs.__event_size_;
360e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
361e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    for (__event_size_ = 0; __event_size_ < rhs.__event_size_; ++__event_size_)
362e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
363e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __fn_[__event_size_] = rhs.__fn_[__event_size_];
364e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __index_[__event_size_] = rhs.__index_[__event_size_];
365e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
366e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__iarray_cap_ < rhs.__iarray_size_)
367e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
368e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        free(__iarray_);
369e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __iarray_ = new_longs.release();
370e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __iarray_cap_ = rhs.__iarray_size_;
371e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
372e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    for (__iarray_size_ = 0; __iarray_size_ < rhs.__iarray_size_; ++__iarray_size_)
373e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __iarray_[__iarray_size_] = rhs.__iarray_[__iarray_size_];
374e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__parray_cap_ < rhs.__parray_size_)
375e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    {
376e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        free(__parray_);
377e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __parray_ = new_pointers.release();
378e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __parray_cap_ = rhs.__parray_size_;
379e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    }
380e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    for (__parray_size_ = 0; __parray_size_ < rhs.__parray_size_; ++__parray_size_)
381e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        __parray_[__parray_size_] = rhs.__parray_[__parray_size_];
382e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
383e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
384e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
385e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::move(ios_base& rhs)
386e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
387e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    // *this is uninitialized
388e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __fmtflags_ = rhs.__fmtflags_;
389e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __precision_ = rhs.__precision_;
390e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __width_ = rhs.__width_;
391e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __rdstate_ = rhs.__rdstate_;
392e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __exceptions_ = rhs.__exceptions_;
393e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __rdbuf_ = 0;
394e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    locale& rhs_loc = *reinterpret_cast<locale*>(&rhs.__loc_);
395e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    ::new(&__loc_) locale(rhs_loc);
396e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __fn_ = rhs.__fn_;
397e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__fn_ = 0;
398e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __index_ = rhs.__index_;
399e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__index_ = 0;
400e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __event_size_ = rhs.__event_size_;
401e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__event_size_ = 0;
402e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __event_cap_ = rhs.__event_cap_;
403e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__event_cap_ = 0;
404e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __iarray_ = rhs.__iarray_;
405e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__iarray_ = 0;
406e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __iarray_size_ = rhs.__iarray_size_;
407e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__iarray_size_ = 0;
408e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __iarray_cap_ = rhs.__iarray_cap_;
409e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__iarray_cap_ = 0;
410e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __parray_ = rhs.__parray_;
411e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__parray_ = 0;
412e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __parray_size_ = rhs.__parray_size_;
413e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__parray_size_ = 0;
414e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __parray_cap_ = rhs.__parray_cap_;
415e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    rhs.__parray_cap_ = 0;
416e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
417e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
418e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
419e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::swap(ios_base& rhs) _NOEXCEPT
420e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
421e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__fmtflags_, rhs.__fmtflags_);
422e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__precision_, rhs.__precision_);
423e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__width_, rhs.__width_);
424e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__rdstate_, rhs.__rdstate_);
425e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__exceptions_, rhs.__exceptions_);
426e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    locale& lhs_loc = *reinterpret_cast<locale*>(&__loc_);
427e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    locale& rhs_loc = *reinterpret_cast<locale*>(&rhs.__loc_);
428e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(lhs_loc, rhs_loc);
429e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__fn_, rhs.__fn_);
430e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__index_, rhs.__index_);
431e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__event_size_, rhs.__event_size_);
432e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__event_cap_, rhs.__event_cap_);
433e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__iarray_, rhs.__iarray_);
434e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__iarray_size_, rhs.__iarray_size_);
435e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__iarray_cap_, rhs.__iarray_cap_);
436e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__parray_, rhs.__parray_);
437e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__parray_size_, rhs.__parray_size_);
438e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    _VSTD::swap(__parray_cap_, rhs.__parray_cap_);
439e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
440e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
441e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
442e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::__set_badbit_and_consider_rethrow()
443e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
444e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __rdstate_ |= badbit;
445e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS
446e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__exceptions_ & badbit)
447e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        throw;
448e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_NO_EXCEPTIONS
449e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
450e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
451e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
452e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::__set_failbit_and_consider_rethrow()
453e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
454e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    __rdstate_ |= failbit;
455e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS
456e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    if (__exceptions_ & failbit)
457e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot        throw;
458e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif  // _LIBCPP_NO_EXCEPTIONS
459e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
460e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
461e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotbool
462e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::sync_with_stdio(bool sync)
463e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
464e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    static bool previous_state = true;
465e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    bool r = previous_state;
466e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    previous_state = sync;
467e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return r;
468e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
469e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
470e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot_LIBCPP_END_NAMESPACE_STD
471