| // Copyright 2018 The Fuchsia Authors |
| // |
| // Use of this source code is governed by a MIT-style |
| // license that can be found in the LICENSE file or at |
| // https://opensource.org/licenses/MIT |
| |
| #pragma once |
| |
| // This is used by libc++'s <new> just for std::abort, ::posix_memalign, and |
| // ::free. |
| |
| #include <stdlib.h> |
| |
| #include <__config> |
| |
| #define _LIBCPP_UNREACHABLE() __builtin_unreachable() |
| |
| // This is used by the __libcpp_aligned_alloc inline. Since it always fails |
| // that inline will trivially always return nullptr. |
| inline int posix_memalign(void** ptr, size_t align, size_t size) { return 1; } |
| |
| // This is used by the __libcpp_aligned_free inline, which won't really ever be |
| // called. The kernel does have a real free declared elsewhere. |
| void free(void* ptr); |
| |
| _LIBCPP_BEGIN_NAMESPACE_STD |
| |
| using ::abort; |
| |
| _LIBCPP_END_NAMESPACE_STD |