[libc++] Move <__sso_allocator> out of include/ into src/. NFCI.

This allocator is not intended for libc++'s users to use;
it's strictly an implementation detail of `src/locale.cpp`.
So, move it to the `src/include/` directory.

Drive-by const-qualify its comparison operators.

For consistency with `__hidden_allocator` (defined in `src/thread.cpp`),
do *not* remove it from "libcxx/lib/libc++unexp.exp",
"libcxx/utils/symcheck-blacklists/linux_blacklist.txt", etc.

Differential Revision: https://reviews.llvm.org/D101293
This commit is contained in:
Arthur O'Dwyer
2021-04-26 09:56:50 -04:00
parent 602f318cfd
commit 0b10bb7ddd
5 changed files with 7 additions and 8 deletions

View File

@@ -41,7 +41,6 @@ set(files
__ranges/view.h
__ranges/size.h
__split_buffer
__sso_allocator
__std_stream
__string
__threading_support

View File

@@ -542,7 +542,6 @@ module std [system] {
module __locale { header "__locale" export * }
module __mutex_base { header "__mutex_base" export * }
module __split_buffer { header "__split_buffer" export * }
module __sso_allocator { header "__sso_allocator" export * }
module __std_stream { header "__std_stream" export * }
module __string { header "__string" export * }
module __tree { header "__tree" export * }

View File

@@ -64,6 +64,7 @@ endif()
if (LIBCXX_ENABLE_LOCALIZATION)
list(APPEND LIBCXX_SOURCES
include/sso_allocator.h
ios.cpp
ios.instantiations.cpp
iostream.cpp

View File

@@ -7,8 +7,8 @@
//
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP___SSO_ALLOCATOR
#define _LIBCPP___SSO_ALLOCATOR
#ifndef _LIBCPP_SSO_ALLOCATOR_H
#define _LIBCPP_SSO_ALLOCATOR_H
#include <__config>
#include <memory>
@@ -67,11 +67,11 @@ public:
_LIBCPP_INLINE_VISIBILITY size_type max_size() const throw() {return size_type(~0) / sizeof(_Tp);}
_LIBCPP_INLINE_VISIBILITY
bool operator==(__sso_allocator& __a) const {return &buf_ == &__a.buf_;}
bool operator==(const __sso_allocator& __a) const {return &buf_ == &__a.buf_;}
_LIBCPP_INLINE_VISIBILITY
bool operator!=(__sso_allocator& __a) const {return &buf_ != &__a.buf_;}
bool operator!=(const __sso_allocator& __a) const {return &buf_ != &__a.buf_;}
};
_LIBCPP_END_NAMESPACE_STD
#endif // _LIBCPP___SSO_ALLOCATOR
#endif // _LIBCPP_SSO_ALLOCATOR_H

View File

@@ -27,7 +27,6 @@
#define _CTYPE_DISABLE_MACROS
#endif
#include "cwctype"
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "__support/win32/locale_win32.h"
#elif !defined(__BIONIC__) && !defined(__NuttX__)
@@ -36,6 +35,7 @@
#include <stdlib.h>
#include <stdio.h>
#include "include/atomic_support.h"
#include "include/sso_allocator.h"
#include "__undef_macros"
// On Linux, wint_t and wchar_t have different signed-ness, and this causes