llvm-project/libcxx/src/legacy_pointer_safety.cpp
Arthur O'Dwyer bbb0f2c759 [libc++] Replace #include "" with <> in libcxx/src/. NFCI.
Our best guess is that the two syntaxes should have exactly equivalent
effects, so, let's be consistent with what we do in libcxx/include/.

I've left `#include "include/x.h"` and `#include "../y.h"` alone
because I'm less sure that they're interchangeable, and they aren't
inconsistent with libcxx/include/ because libcxx/include/ never
does that kind of thing.

Also, use the `_LIBCPP_PUSH_MACROS/POP_MACROS` dance for `<__undef_macros>`,
even though it's technically unnecessary in a standalone .cpp file,
just so we have consistently one way to do it.

Differential Revision: https://reviews.llvm.org/D119561
2022-02-15 13:00:46 -05:00

24 lines
979 B
C++

//===----------------------------------------------------------------------===//
//
// 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