xref: /openbsd-src/gnu/llvm/libcxxabi/src/stdlib_stdexcept.cpp (revision 8f1d572453a8bab44a2fe956e25efc4124e87e82)
1*8f1d5724Srobert //===----------------------------------------------------------------------===//
279c2e3e6Spatrick //
379c2e3e6Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
479c2e3e6Spatrick // See https://llvm.org/LICENSE.txt for license information.
579c2e3e6Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
679c2e3e6Spatrick //
779c2e3e6Spatrick //===----------------------------------------------------------------------===//
879c2e3e6Spatrick 
979c2e3e6Spatrick #include "stdexcept"
1079c2e3e6Spatrick #include "new"
1179c2e3e6Spatrick #include <cstdlib>
1279c2e3e6Spatrick #include <cstring>
1379c2e3e6Spatrick #include <cstdint>
1479c2e3e6Spatrick #include <cstddef>
15*8f1d5724Srobert #include "include/refstring.h" // from libc++
164e0cc08cSpatrick 
1779c2e3e6Spatrick static_assert(sizeof(std::__libcpp_refstring) == sizeof(const char *), "");
1879c2e3e6Spatrick 
1979c2e3e6Spatrick namespace std  // purposefully not using versioning namespace
2079c2e3e6Spatrick {
2179c2e3e6Spatrick 
~logic_error()224e0cc08cSpatrick logic_error::~logic_error() noexcept {}
2379c2e3e6Spatrick 
2479c2e3e6Spatrick const char*
what() const254e0cc08cSpatrick logic_error::what() const noexcept
2679c2e3e6Spatrick {
2779c2e3e6Spatrick     return __imp_.c_str();
2879c2e3e6Spatrick }
2979c2e3e6Spatrick 
~runtime_error()304e0cc08cSpatrick runtime_error::~runtime_error() noexcept {}
3179c2e3e6Spatrick 
3279c2e3e6Spatrick const char*
what() const334e0cc08cSpatrick runtime_error::what() const noexcept
3479c2e3e6Spatrick {
3579c2e3e6Spatrick     return __imp_.c_str();
3679c2e3e6Spatrick }
3779c2e3e6Spatrick 
~domain_error()384e0cc08cSpatrick domain_error::~domain_error() noexcept {}
~invalid_argument()394e0cc08cSpatrick invalid_argument::~invalid_argument() noexcept {}
~length_error()404e0cc08cSpatrick length_error::~length_error() noexcept {}
~out_of_range()414e0cc08cSpatrick out_of_range::~out_of_range() noexcept {}
4279c2e3e6Spatrick 
~range_error()434e0cc08cSpatrick range_error::~range_error() noexcept {}
~overflow_error()444e0cc08cSpatrick overflow_error::~overflow_error() noexcept {}
~underflow_error()454e0cc08cSpatrick underflow_error::~underflow_error() noexcept {}
4679c2e3e6Spatrick 
4779c2e3e6Spatrick }  // std
48