|
9 | 9 | #ifndef _LIBCPP___MEMORY_ALIGN_H |
10 | 10 | #define _LIBCPP___MEMORY_ALIGN_H |
11 | 11 |
|
| 12 | +#include "align_impl.h" |
12 | 13 | #include <__config> |
13 | | -#include <__cstddef/size_t.h> |
14 | | -#include <cstdint> |
| 14 | +#include <__memory/align_impl.h> |
15 | 15 |
|
16 | 16 | #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
17 | 17 | # pragma GCC system_header |
18 | 18 | #endif |
19 | 19 |
|
20 | 20 | _LIBCPP_BEGIN_NAMESPACE_STD |
21 | 21 |
|
22 | | -_LIBCPP_HIDE_FROM_ABI _LIBCPP_ALWAYS_INLINE inline void* |
23 | | -__align_impl(size_t __align, size_t __sz, void*& __ptr, size_t& __space) { |
24 | | - void* __r = nullptr; |
25 | | - if (__sz <= __space) { |
26 | | - char* __p1 = static_cast<char*>(__ptr); |
27 | | - char* __p2 = reinterpret_cast<char*>(reinterpret_cast<uintptr_t>(__p1 + (__align - 1)) & -__align); |
28 | | - size_t __d = static_cast<size_t>(__p2 - __p1); |
29 | | - if (__d <= __space - __sz) { |
30 | | - __r = __p2; |
31 | | - __ptr = __r; |
32 | | - __space -= __d; |
33 | | - } |
34 | | - } |
35 | | - return __r; |
36 | | -} |
37 | | - |
38 | | -#ifndef _LIBCPP_EXPORT_ALIGN_SYMBOL |
39 | | -# ifdef _LIBCPP_DISABLE_INLINE_OPTIMIZE_BECAUSE_MULTIPLY_SYMBOLS_ERROR |
| 22 | +#if defined(_LIBCPP_DISABLE_INLINE_OPTIMIZE_BECAUSE_MULTIPLY_SYMBOLS_ERROR) && !defined(_LIBCPP_ABI_DO_NOT_EXPORT_ALIGN) |
40 | 23 |
|
41 | 24 | _LIBCPP_EXPORTED_FROM_ABI void* align(size_t __align, size_t __sz, void*& __ptr, size_t& __space); |
42 | 25 |
|
43 | | -# else |
| 26 | +#else |
44 | 27 |
|
45 | 28 | inline _LIBCPP_HIDE_FROM_ABI void* align(size_t __align, size_t __sz, void*& __ptr, size_t& __space) { |
46 | | - return __align_impl(__align, __sz, __ptr, __space); |
| 29 | + return align_impl(__align, __sz, __ptr, __space); |
47 | 30 | } |
48 | 31 |
|
49 | | -# endif // _LIBCPP_DISABLE_INLINE_OPTIMIZE_BECAUSE_MULTIPLY_SYMBOLS_ERROR |
50 | | - |
51 | | -#endif // _LIBCPP_EXPORT_ALIGN_SYMBOL |
| 32 | +#endif // _LIBCPP_DISABLE_INLINE_OPTIMIZE_BECAUSE_MULTIPLY_SYMBOLS_ERROR |
52 | 33 |
|
53 | 34 | _LIBCPP_END_NAMESPACE_STD |
54 | 35 |
|
|
0 commit comments