summaryrefslogtreecommitdiffstats
path: root/libcxx/include/support/newlib
diff options
context:
space:
mode:
authorBen Craig <ben.craig@codeaurora.org>2016-02-18 17:40:16 +0000
committerBen Craig <ben.craig@codeaurora.org>2016-02-18 17:40:16 +0000
commitb8aea04ef51f02b9224a7a4a577ee44c5c69d899 (patch)
tree43fb50849b6470bde91eeaf57a77e327a5e0b5d3 /libcxx/include/support/newlib
parent217946da98f41bc6cb0ca54bc01a5e804e034937 (diff)
downloadbcm5719-llvm-b8aea04ef51f02b9224a7a4a577ee44c5c69d899.tar.gz
bcm5719-llvm-b8aea04ef51f02b9224a7a4a577ee44c5c69d899.zip
Split locale management out of newlib/xlocale.h. NFCI
This is one part of many of a locale refactor. See http://reviews.llvm.org/D17146 for an idea of where this is going. For the locale refactor, the locale management functions (newlocale, freelocale, uselocale) are needed in a separate header from the various _l functions. This is because some platforms implement the _l functions in terms of a locale switcher RAII helper, and the locale switcher RAII helper needs the locale management functions. This patch helps pave the way by getting all the functions in the right files, so that later diffs aren't completely horrible. The "do-nothing" / "nop" locale functions are also useful on their own for other lightweight platforms. Putting these nop implementations in support/xlocale should enable code sharing. Unfortunately, I have no access to a newlib system to build and test with, so this change has been made blind. Reviewed: http://reviews.llvm.org/D17382 llvm-svn: 261231
Diffstat (limited to 'libcxx/include/support/newlib')
-rw-r--r--libcxx/include/support/newlib/xlocale.h31
1 files changed, 1 insertions, 30 deletions
diff --git a/libcxx/include/support/newlib/xlocale.h b/libcxx/include/support/newlib/xlocale.h
index d067cf85a3b..f729ee5f071 100644
--- a/libcxx/include/support/newlib/xlocale.h
+++ b/libcxx/include/support/newlib/xlocale.h
@@ -16,41 +16,12 @@
#include <clocale>
#include <cwctype>
#include <ctype.h>
+#include <support/xlocale/__nop_locale_mgmt.h>
#ifdef __cplusplus
extern "C" {
#endif
-// Patch over newlib's lack of extended locale support
-typedef void *locale_t;
-static inline locale_t duplocale(locale_t) {
- return NULL;
-}
-
-static inline void freelocale(locale_t) {
-}
-
-static inline locale_t newlocale(int, const char *, locale_t) {
- return NULL;
-}
-
-static inline locale_t uselocale(locale_t) {
- return NULL;
-}
-
-#define LC_COLLATE_MASK (1 << LC_COLLATE)
-#define LC_CTYPE_MASK (1 << LC_CTYPE)
-#define LC_MESSAGES_MASK (1 << LC_MESSAGES)
-#define LC_MONETARY_MASK (1 << LC_MONETARY)
-#define LC_NUMERIC_MASK (1 << LC_NUMERIC)
-#define LC_TIME_MASK (1 << LC_TIME)
-#define LC_ALL_MASK (LC_COLLATE_MASK|\
- LC_CTYPE_MASK|\
- LC_MONETARY_MASK|\
- LC_NUMERIC_MASK|\
- LC_TIME_MASK|\
- LC_MESSAGES_MASK)
-
// Share implementation with Android's Bionic
#include <support/xlocale/xlocale.h>
OpenPOWER on IntegriCloud