Cider Isn't Darwin Emulation, Really
Something went wrong. Try again.
6.6 kB · 278 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279// -*- C++ -*-//===--------------------------- stdexcept --------------------------------===////// The LLVM Compiler Infrastructure//// This file is dual licensed under the MIT and the University of Illinois Open// Source Licenses. See LICENSE.TXT for details.////===----------------------------------------------------------------------===//#ifndef _LIBCPP_STDEXCEPT#define _LIBCPP_STDEXCEPT/* stdexcept synopsisnamespace std{class logic_error; class domain_error; class invalid_argument; class length_error; class out_of_range;class runtime_error; class range_error; class overflow_error; class underflow_error;for each class xxx_error:class xxx_error : public exception // at least indirectly{public: explicit xxx_error(const string& what_arg); explicit xxx_error(const char* what_arg); virtual const char* what() const noexcept // returns what_arg};} // std*/#include <__config>#include <exception>#include <iosfwd> // for string forward decl#ifdef _LIBCPP_NO_EXCEPTIONS#include <cstdlib>#endif#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)#pragma GCC system_header#endif_LIBCPP_BEGIN_NAMESPACE_STDclass _LIBCPP_HIDDEN __libcpp_refstring{ const char* __imp_; bool __uses_refcount() const;public: explicit __libcpp_refstring(const char* __msg); __libcpp_refstring(const __libcpp_refstring& __s) _NOEXCEPT; __libcpp_refstring& operator=(const __libcpp_refstring& __s) _NOEXCEPT; ~__libcpp_refstring(); const char* c_str() const _NOEXCEPT {return __imp_;}};_LIBCPP_END_NAMESPACE_STDnamespace std // purposefully not using versioning namespace{class _LIBCPP_EXCEPTION_ABI logic_error : public exception{private: _VSTD::__libcpp_refstring __imp_;public: explicit logic_error(const string&); explicit logic_error(const char*); logic_error(const logic_error&) _NOEXCEPT; logic_error& operator=(const logic_error&) _NOEXCEPT; virtual ~logic_error() _NOEXCEPT; virtual const char* what() const _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI runtime_error : public exception{private: _VSTD::__libcpp_refstring __imp_;public: explicit runtime_error(const string&); explicit runtime_error(const char*); runtime_error(const runtime_error&) _NOEXCEPT; runtime_error& operator=(const runtime_error&) _NOEXCEPT; virtual ~runtime_error() _NOEXCEPT; virtual const char* what() const _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI domain_error : public logic_error{public: _LIBCPP_INLINE_VISIBILITY explicit domain_error(const string& __s) : logic_error(__s) {} _LIBCPP_INLINE_VISIBILITY explicit domain_error(const char* __s) : logic_error(__s) {} virtual ~domain_error() _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI invalid_argument : public logic_error{public: _LIBCPP_INLINE_VISIBILITY explicit invalid_argument(const string& __s) : logic_error(__s) {} _LIBCPP_INLINE_VISIBILITY explicit invalid_argument(const char* __s) : logic_error(__s) {} virtual ~invalid_argument() _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI length_error : public logic_error{public: _LIBCPP_INLINE_VISIBILITY explicit length_error(const string& __s) : logic_error(__s) {} _LIBCPP_INLINE_VISIBILITY explicit length_error(const char* __s) : logic_error(__s) {} virtual ~length_error() _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI out_of_range : public logic_error{public: _LIBCPP_INLINE_VISIBILITY explicit out_of_range(const string& __s) : logic_error(__s) {} _LIBCPP_INLINE_VISIBILITY explicit out_of_range(const char* __s) : logic_error(__s) {} virtual ~out_of_range() _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI range_error : public runtime_error{public: _LIBCPP_INLINE_VISIBILITY explicit range_error(const string& __s) : runtime_error(__s) {} _LIBCPP_INLINE_VISIBILITY explicit range_error(const char* __s) : runtime_error(__s) {} virtual ~range_error() _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI overflow_error : public runtime_error{public: _LIBCPP_INLINE_VISIBILITY explicit overflow_error(const string& __s) : runtime_error(__s) {} _LIBCPP_INLINE_VISIBILITY explicit overflow_error(const char* __s) : runtime_error(__s) {} virtual ~overflow_error() _NOEXCEPT;};class _LIBCPP_EXCEPTION_ABI underflow_error : public runtime_error{public: _LIBCPP_INLINE_VISIBILITY explicit underflow_error(const string& __s) : runtime_error(__s) {} _LIBCPP_INLINE_VISIBILITY explicit underflow_error(const char* __s) : runtime_error(__s) {} virtual ~underflow_error() _NOEXCEPT;};} // std_LIBCPP_BEGIN_NAMESPACE_STD// in the dylib_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void __throw_runtime_error(const char*);_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_logic_error(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw logic_error(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_domain_error(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw domain_error(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_invalid_argument(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw invalid_argument(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_length_error(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw length_error(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_out_of_range(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw out_of_range(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_range_error(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw range_error(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_overflow_error(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw overflow_error(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINEvoid __throw_underflow_error(const char*__msg){#ifndef _LIBCPP_NO_EXCEPTIONS throw underflow_error(__msg);#else ((void)__msg); _VSTD::abort();#endif}_LIBCPP_END_NAMESPACE_STD#endif // _LIBCPP_STDEXCEPT