xref: /freebsd-src/contrib/llvm-project/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp (revision 1db9f3b21e39176dd5b67cf8ac378633b172463e)
1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#include <stdio.h>
11#include <stdlib.h>
12
13namespace std {
14
15exception_ptr::~exception_ptr() noexcept {
16#warning exception_ptr not yet implemented
17  fprintf(stderr, "exception_ptr not yet implemented\n");
18  ::abort();
19}
20
21exception_ptr::exception_ptr(const exception_ptr& other) noexcept : __ptr_(other.__ptr_) {
22#warning exception_ptr not yet implemented
23  fprintf(stderr, "exception_ptr not yet implemented\n");
24  ::abort();
25}
26
27exception_ptr& exception_ptr::operator=(const exception_ptr& other) noexcept {
28#warning exception_ptr not yet implemented
29  fprintf(stderr, "exception_ptr not yet implemented\n");
30  ::abort();
31}
32
33nested_exception::nested_exception() noexcept : __ptr_(current_exception()) {}
34
35#if !defined(__GLIBCXX__)
36
37nested_exception::~nested_exception() noexcept {}
38
39#endif
40
41_LIBCPP_NORETURN void nested_exception::rethrow_nested() const {
42#warning exception_ptr not yet implemented
43  fprintf(stderr, "exception_ptr not yet implemented\n");
44  ::abort();
45#if 0
46  if (__ptr_ == nullptr)
47      terminate();
48  rethrow_exception(__ptr_);
49#endif // FIXME
50}
51
52exception_ptr current_exception() noexcept {
53#warning exception_ptr not yet implemented
54  fprintf(stderr, "exception_ptr not yet implemented\n");
55  ::abort();
56}
57
58_LIBCPP_NORETURN void rethrow_exception(exception_ptr p) {
59#warning exception_ptr not yet implemented
60  fprintf(stderr, "exception_ptr not yet implemented\n");
61  ::abort();
62}
63
64} // namespace std
65