summaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
diff options
context:
space:
mode:
authorarcadia-devtools <[email protected]>2022-02-12 14:35:15 +0300
committerarcadia-devtools <[email protected]>2022-02-12 14:35:15 +0300
commit46a8b83899dd321edf511c0483f9c479ce2c1bc4 (patch)
treee5debc03beecbd10e7d1bf78c889c8d54e8c4523 /contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
parentb56bbcc9f63bf31991a8aa118555ce0c12875a74 (diff)
intermediate changes
ref:7c971b97c72bbbcbf889118d39017bd14f99365a
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp')
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp b/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
new file mode 100644
index 00000000000..34f5613ae25
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
@@ -0,0 +1,23 @@
+//===----------------------------------------------------------------------===//
+//
+// 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 "__config"
+#include <memory>
+
+// Support for garbage collection was removed in C++23 by https://wg21.link/P2186R2. Libc++ implements
+// that removal as an extension in all Standard versions. However, we still define the functions that
+// were once part of the library's ABI for backwards compatibility.
+
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+_LIBCPP_FUNC_VIS void declare_reachable(void*) {}
+_LIBCPP_FUNC_VIS void declare_no_pointers(char*, size_t) {}
+_LIBCPP_FUNC_VIS void undeclare_no_pointers(char*, size_t) {}
+_LIBCPP_FUNC_VIS void* __undeclare_reachable(void* p) { return p; }
+
+_LIBCPP_END_NAMESPACE_STD