From ed0dbe1a64a80dc329daab3776bda9d3fa54c9f8 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 26 Mar 2020 22:41:26 -0400 Subject: add libc++ and libc++abi sources upstream: LLVM 10 --- lib/libcxx/src/optional.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 lib/libcxx/src/optional.cpp (limited to 'lib/libcxx/src/optional.cpp') diff --git a/lib/libcxx/src/optional.cpp b/lib/libcxx/src/optional.cpp new file mode 100644 index 0000000000..3aaf5ea553 --- /dev/null +++ b/lib/libcxx/src/optional.cpp @@ -0,0 +1,41 @@ +//===------------------------ optional.cpp --------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "optional" + +namespace std +{ + +bad_optional_access::~bad_optional_access() _NOEXCEPT = default; + +const char* bad_optional_access::what() const _NOEXCEPT { + return "bad_optional_access"; + } + +} // std + + +#include + +// Preserve std::experimental::bad_optional_access for ABI compatibility +// Even though it no longer exists in a header file +_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL + +class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access + : public std::logic_error +{ +public: + bad_optional_access() : std::logic_error("Bad optional Access") {} + +// Get the key function ~bad_optional_access() into the dylib + virtual ~bad_optional_access() _NOEXCEPT; +}; + +bad_optional_access::~bad_optional_access() _NOEXCEPT = default; + +_LIBCPP_END_NAMESPACE_EXPERIMENTAL -- cgit v1.2.3