new (0b57cec536236d46e3dba9bd041533462f33dbb7) new (e40139ff33b48b56a24c808b166b04b8ee6f5b21)
1// -*- C++ -*-
2//===----------------------------- new ------------------------------------===//
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//===----------------------------------------------------------------------===//

--- 25 unchanged lines hidden (view full) ---

34
35enum class align_val_t : size_t {}; // C++17
36
37struct destroying_delete_t { // C++20
38 explicit destroying_delete_t() = default;
39};
40inline constexpr destroying_delete_t destroying_delete{}; // C++20
41
1// -*- C++ -*-
2//===----------------------------- new ------------------------------------===//
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//===----------------------------------------------------------------------===//

--- 25 unchanged lines hidden (view full) ---

34
35enum class align_val_t : size_t {}; // C++17
36
37struct destroying_delete_t { // C++20
38 explicit destroying_delete_t() = default;
39};
40inline constexpr destroying_delete_t destroying_delete{}; // C++20
41
42struct nothrow_t {};
42struct nothrow_t { explicit nothrow_t() = default; };
43extern const nothrow_t nothrow;
44typedef void (*new_handler)();
45new_handler set_new_handler(new_handler new_p) noexcept;
46new_handler get_new_handler() noexcept;
47
48// 21.6.4, pointer optimization barrier
49template <class T> constexpr T* launder(T* p) noexcept; // C++17
50} // std

--- 70 unchanged lines hidden (view full) ---

121 __has_builtin(__builtin_operator_new) < 201802L
122#define _LIBCPP_HAS_NO_BUILTIN_OVERLOADED_OPERATOR_NEW_DELETE
123#endif
124
125namespace std // purposefully not using versioning namespace
126{
127
128#if !defined(_LIBCPP_ABI_VCRUNTIME)
43extern const nothrow_t nothrow;
44typedef void (*new_handler)();
45new_handler set_new_handler(new_handler new_p) noexcept;
46new_handler get_new_handler() noexcept;
47
48// 21.6.4, pointer optimization barrier
49template <class T> constexpr T* launder(T* p) noexcept; // C++17
50} // std

--- 70 unchanged lines hidden (view full) ---

121 __has_builtin(__builtin_operator_new) < 201802L
122#define _LIBCPP_HAS_NO_BUILTIN_OVERLOADED_OPERATOR_NEW_DELETE
123#endif
124
125namespace std // purposefully not using versioning namespace
126{
127
128#if !defined(_LIBCPP_ABI_VCRUNTIME)
129struct _LIBCPP_TYPE_VIS nothrow_t {};
129struct _LIBCPP_TYPE_VIS nothrow_t { explicit nothrow_t() = default; };
130extern _LIBCPP_FUNC_VIS const nothrow_t nothrow;
131
132class _LIBCPP_EXCEPTION_ABI bad_alloc
133 : public exception
134{
135public:
136 bad_alloc() _NOEXCEPT;
137 virtual ~bad_alloc() _NOEXCEPT;

--- 235 unchanged lines hidden ---
130extern _LIBCPP_FUNC_VIS const nothrow_t nothrow;
131
132class _LIBCPP_EXCEPTION_ABI bad_alloc
133 : public exception
134{
135public:
136 bad_alloc() _NOEXCEPT;
137 virtual ~bad_alloc() _NOEXCEPT;

--- 235 unchanged lines hidden ---