xref: /llvm-project/libcxxabi/src/stdlib_stdexcept.cpp (revision eb8650a75793b2bd079d0c8901ff066f129061da)
1*eb8650a7SLouis Dionne //===----------------------------------------------------------------------===//
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>
15f8b1cc36SLouis Dionne #include "include/refstring.h" // from libc++
1672b18a86SNico Weber 
17e9c9f002SEric Fiselier static_assert(sizeof(std::__libcpp_refstring) == sizeof(const char *), "");
18e9c9f002SEric Fiselier 
19e9c9f002SEric Fiselier namespace std  // purposefully not using versioning namespace
20e9c9f002SEric Fiselier {
21e9c9f002SEric Fiselier 
~logic_error()225601305fSLouis Dionne logic_error::~logic_error() noexcept {}
23e9c9f002SEric Fiselier 
24e9c9f002SEric Fiselier const char*
what() const255601305fSLouis Dionne logic_error::what() const noexcept
26e9c9f002SEric Fiselier {
27e9c9f002SEric Fiselier     return __imp_.c_str();
28e9c9f002SEric Fiselier }
29e9c9f002SEric Fiselier 
~runtime_error()305601305fSLouis Dionne runtime_error::~runtime_error() noexcept {}
31e9c9f002SEric Fiselier 
32e9c9f002SEric Fiselier const char*
what() const335601305fSLouis Dionne runtime_error::what() const noexcept
34e9c9f002SEric Fiselier {
35e9c9f002SEric Fiselier     return __imp_.c_str();
36e9c9f002SEric Fiselier }
37e9c9f002SEric Fiselier 
~domain_error()385601305fSLouis Dionne domain_error::~domain_error() noexcept {}
~invalid_argument()395601305fSLouis Dionne invalid_argument::~invalid_argument() noexcept {}
~length_error()405601305fSLouis Dionne length_error::~length_error() noexcept {}
~out_of_range()415601305fSLouis Dionne out_of_range::~out_of_range() noexcept {}
42e9c9f002SEric Fiselier 
~range_error()435601305fSLouis Dionne range_error::~range_error() noexcept {}
~overflow_error()445601305fSLouis Dionne overflow_error::~overflow_error() noexcept {}
~underflow_error()455601305fSLouis Dionne underflow_error::~underflow_error() noexcept {}
46e9c9f002SEric Fiselier 
47e9c9f002SEric Fiselier }  // std
48