[libc++] Refactoring __sync_* builtins; NFC (Reland)

Summary: Wrap __sync_* builtins with __libcpp_ functions to facility future customizations as atomic operations are unavailable on some targets.

Reviewers: danalbert, EricWF, jroelofs

Subscribers: joerg, llvm-commits

Differential Revision: https://reviews.llvm.org/D34918

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@307595 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Weiming Zhao
2017-07-10 21:37:35 +00:00
parent 7a188e3165
commit 880dc47f37
5 changed files with 47 additions and 12 deletions

View File

@@ -28,6 +28,7 @@
#define _CTYPE_DISABLE_MACROS
#endif
#include "cwctype"
#include "__atomic_support"
#include "__sso_allocator"
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
#include "support/win32/locale_win32.h"
@@ -667,7 +668,7 @@ locale::id::__get()
void
locale::id::__init()
{
__id_ = __sync_add_and_fetch(&__next_id, 1);
__id_ = __libcpp_sync_add_and_fetch(&__next_id, 1);
}
// template <> class collate_byname<char>