1e9c9f002SEric Fiselier //===------------------------ stdexcept.cpp -------------------------------===// 2e9c9f002SEric Fiselier // 357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e9c9f002SEric Fiselier // 7e9c9f002SEric Fiselier //===----------------------------------------------------------------------===// 8e9c9f002SEric Fiselier 9e9c9f002SEric Fiselier #include "stdexcept" 10e9c9f002SEric Fiselier #include "new" 11e9c9f002SEric Fiselier #include <cstdlib> 12e9c9f002SEric Fiselier #include <cstring> 13e9c9f002SEric Fiselier #include <cstdint> 14e9c9f002SEric Fiselier #include <cstddef> 15e9c9f002SEric Fiselier 1672b18a86SNico Weber // This includes an implementation file from libc++. 1772b18a86SNico Weber #include "src/include/refstring.h" 1872b18a86SNico Weber 19e9c9f002SEric Fiselier static_assert(sizeof(std::__libcpp_refstring) == sizeof(const char *), ""); 20e9c9f002SEric Fiselier 21e9c9f002SEric Fiselier namespace std // purposefully not using versioning namespace 22e9c9f002SEric Fiselier { 23e9c9f002SEric Fiselier 24*5601305fSLouis Dionne logic_error::~logic_error() noexcept {} 25e9c9f002SEric Fiselier 26e9c9f002SEric Fiselier const char* 27*5601305fSLouis Dionne logic_error::what() const noexcept 28e9c9f002SEric Fiselier { 29e9c9f002SEric Fiselier return __imp_.c_str(); 30e9c9f002SEric Fiselier } 31e9c9f002SEric Fiselier 32*5601305fSLouis Dionne runtime_error::~runtime_error() noexcept {} 33e9c9f002SEric Fiselier 34e9c9f002SEric Fiselier const char* 35*5601305fSLouis Dionne runtime_error::what() const noexcept 36e9c9f002SEric Fiselier { 37e9c9f002SEric Fiselier return __imp_.c_str(); 38e9c9f002SEric Fiselier } 39e9c9f002SEric Fiselier 40*5601305fSLouis Dionne domain_error::~domain_error() noexcept {} 41*5601305fSLouis Dionne invalid_argument::~invalid_argument() noexcept {} 42*5601305fSLouis Dionne length_error::~length_error() noexcept {} 43*5601305fSLouis Dionne out_of_range::~out_of_range() noexcept {} 44e9c9f002SEric Fiselier 45*5601305fSLouis Dionne range_error::~range_error() noexcept {} 46*5601305fSLouis Dionne overflow_error::~overflow_error() noexcept {} 47*5601305fSLouis Dionne underflow_error::~underflow_error() noexcept {} 48e9c9f002SEric Fiselier 49e9c9f002SEric Fiselier } // std 50