1e9c9f002SEric Fiselier //===------------------------ stdexcept.cpp -------------------------------===// 2e9c9f002SEric Fiselier // 3e9c9f002SEric Fiselier // The LLVM Compiler Infrastructure 4e9c9f002SEric Fiselier // 5e9c9f002SEric Fiselier // This file is dual licensed under the MIT and the University of Illinois Open 6e9c9f002SEric Fiselier // Source Licenses. See LICENSE.TXT for details. 7e9c9f002SEric Fiselier // 8e9c9f002SEric Fiselier //===----------------------------------------------------------------------===// 9e9c9f002SEric Fiselier 10*84800d99SEric Fiselier #include "include/refstring.h" 11e9c9f002SEric Fiselier #include "stdexcept" 12e9c9f002SEric Fiselier #include "new" 13e9c9f002SEric Fiselier #include <cstdlib> 14e9c9f002SEric Fiselier #include <cstring> 15e9c9f002SEric Fiselier #include <cstdint> 16e9c9f002SEric Fiselier #include <cstddef> 17e9c9f002SEric Fiselier 18e9c9f002SEric Fiselier static_assert(sizeof(std::__libcpp_refstring) == sizeof(const char *), ""); 19e9c9f002SEric Fiselier 20e9c9f002SEric Fiselier namespace std // purposefully not using versioning namespace 21e9c9f002SEric Fiselier { 22e9c9f002SEric Fiselier 23e9c9f002SEric Fiselier logic_error::~logic_error() _NOEXCEPT {} 24e9c9f002SEric Fiselier 25e9c9f002SEric Fiselier const char* 26e9c9f002SEric Fiselier logic_error::what() const _NOEXCEPT 27e9c9f002SEric Fiselier { 28e9c9f002SEric Fiselier return __imp_.c_str(); 29e9c9f002SEric Fiselier } 30e9c9f002SEric Fiselier 31e9c9f002SEric Fiselier runtime_error::~runtime_error() _NOEXCEPT {} 32e9c9f002SEric Fiselier 33e9c9f002SEric Fiselier const char* 34e9c9f002SEric Fiselier runtime_error::what() const _NOEXCEPT 35e9c9f002SEric Fiselier { 36e9c9f002SEric Fiselier return __imp_.c_str(); 37e9c9f002SEric Fiselier } 38e9c9f002SEric Fiselier 39e9c9f002SEric Fiselier domain_error::~domain_error() _NOEXCEPT {} 40e9c9f002SEric Fiselier invalid_argument::~invalid_argument() _NOEXCEPT {} 41e9c9f002SEric Fiselier length_error::~length_error() _NOEXCEPT {} 42e9c9f002SEric Fiselier out_of_range::~out_of_range() _NOEXCEPT {} 43e9c9f002SEric Fiselier 44e9c9f002SEric Fiselier range_error::~range_error() _NOEXCEPT {} 45e9c9f002SEric Fiselier overflow_error::~overflow_error() _NOEXCEPT {} 46e9c9f002SEric Fiselier underflow_error::~underflow_error() _NOEXCEPT {} 47e9c9f002SEric Fiselier 48e9c9f002SEric Fiselier } // std 49