Revert " [libc] Add ctype.h locale variants (#102711)"
This reverts commit 8f005f8306dc52577b3b9482d271fb463f0152a5.
This commit is contained in:
parent
8f005f8306
commit
2f4232db0b
@ -4,35 +4,21 @@ set(TARGET_LIBC_ENTRYPOINTS
|
||||
|
||||
# ctype.h entrypoints
|
||||
libc.src.ctype.isalnum
|
||||
libc.src.ctype.isalnum_l
|
||||
libc.src.ctype.isalpha
|
||||
libc.src.ctype.isalpha_l
|
||||
libc.src.ctype.isascii
|
||||
libc.src.ctype.isblank
|
||||
libc.src.ctype.isblank_l
|
||||
libc.src.ctype.iscntrl
|
||||
libc.src.ctype.iscntrl_l
|
||||
libc.src.ctype.isdigit
|
||||
libc.src.ctype.isdigit_l
|
||||
libc.src.ctype.isgraph
|
||||
libc.src.ctype.isgraph_l
|
||||
libc.src.ctype.islower
|
||||
libc.src.ctype.islower_l
|
||||
libc.src.ctype.isprint
|
||||
libc.src.ctype.isprint_l
|
||||
libc.src.ctype.ispunct
|
||||
libc.src.ctype.ispunct_l
|
||||
libc.src.ctype.isspace
|
||||
libc.src.ctype.isspace_l
|
||||
libc.src.ctype.isupper
|
||||
libc.src.ctype.isupper_l
|
||||
libc.src.ctype.isxdigit
|
||||
libc.src.ctype.isxdigit_l
|
||||
libc.src.ctype.toascii
|
||||
libc.src.ctype.tolower
|
||||
libc.src.ctype.tolower_l
|
||||
libc.src.ctype.toupper
|
||||
libc.src.ctype.toupper_l
|
||||
|
||||
# string.h entrypoints
|
||||
libc.src.string.bcmp
|
||||
@ -247,15 +233,6 @@ set(TARGET_LIBC_ENTRYPOINTS
|
||||
# wchar.h entrypoints
|
||||
libc.src.wchar.wctob
|
||||
|
||||
# locale.h entrypoints
|
||||
libc.src.locale.localeconv
|
||||
libc.src.locale.duplocale
|
||||
libc.src.locale.freelocale
|
||||
libc.src.locale.localeconv
|
||||
libc.src.locale.newlocale
|
||||
libc.src.locale.setlocale
|
||||
libc.src.locale.uselocale
|
||||
|
||||
# gpu/rpc.h entrypoints
|
||||
libc.src.gpu.rpc_host_call
|
||||
)
|
||||
|
||||
@ -16,7 +16,6 @@ set(TARGET_PUBLIC_HEADERS
|
||||
libc.include.wchar
|
||||
libc.include.uchar
|
||||
libc.include.features
|
||||
libc.include.locale
|
||||
|
||||
# Header for RPC extensions
|
||||
libc.include.gpu_rpc
|
||||
|
||||
@ -782,22 +782,6 @@ endif()
|
||||
|
||||
if(LLVM_LIBC_FULL_BUILD)
|
||||
list(APPEND TARGET_LIBC_ENTRYPOINTS
|
||||
# ctype.h entrypoints
|
||||
libc.src.ctype.isalnum_l
|
||||
libc.src.ctype.isalpha_l
|
||||
libc.src.ctype.isblank_l
|
||||
libc.src.ctype.iscntrl_l
|
||||
libc.src.ctype.isdigit_l
|
||||
libc.src.ctype.isgraph_l
|
||||
libc.src.ctype.islower_l
|
||||
libc.src.ctype.isprint_l
|
||||
libc.src.ctype.ispunct_l
|
||||
libc.src.ctype.isspace_l
|
||||
libc.src.ctype.isupper_l
|
||||
libc.src.ctype.isxdigit_l
|
||||
libc.src.ctype.tolower_l
|
||||
libc.src.ctype.toupper_l
|
||||
|
||||
# assert.h entrypoints
|
||||
libc.src.assert.__assert_fail
|
||||
|
||||
@ -998,15 +982,6 @@ if(LLVM_LIBC_FULL_BUILD)
|
||||
libc.src.time.nanosleep
|
||||
libc.src.time.time
|
||||
|
||||
# locale.h entrypoints
|
||||
libc.src.locale.localeconv
|
||||
libc.src.locale.duplocale
|
||||
libc.src.locale.freelocale
|
||||
libc.src.locale.localeconv
|
||||
libc.src.locale.newlocale
|
||||
libc.src.locale.setlocale
|
||||
libc.src.locale.uselocale
|
||||
|
||||
# unistd.h entrypoints
|
||||
libc.src.unistd.__llvm_libc_syscall
|
||||
libc.src.unistd._exit
|
||||
|
||||
@ -33,7 +33,6 @@ set(TARGET_PUBLIC_HEADERS
|
||||
libc.include.unistd
|
||||
libc.include.wchar
|
||||
libc.include.uchar
|
||||
libc.include.locale
|
||||
|
||||
libc.include.arpa_inet
|
||||
|
||||
|
||||
@ -162,12 +162,3 @@ add_proxy_header_library(
|
||||
libc.include.llvm-libc-types.cookie_io_functions_t
|
||||
libc.include.stdio
|
||||
)
|
||||
|
||||
add_proxy_header_library(
|
||||
locale_t
|
||||
HDRS
|
||||
locale_t.h
|
||||
FULL_BUILD_DEPENDS
|
||||
libc.include.llvm-libc-types.locale_t
|
||||
libc.include.locale
|
||||
)
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Definition of macros from locale_t.h ------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_HDR_LOCALE_T_H
|
||||
#define LLVM_LIBC_HDR_LOCALE_T_H
|
||||
|
||||
#ifdef LIBC_FULL_BUILD
|
||||
|
||||
#include "include/llvm-libc-types/locale_t.h"
|
||||
|
||||
#else // overlay mode
|
||||
|
||||
#error "type not available in overlay mode"
|
||||
|
||||
#endif // LLVM_LIBC_FULL_BUILD
|
||||
|
||||
#endif // LLVM_LIBC_HDR_LOCALE_T_H
|
||||
@ -45,7 +45,6 @@ add_header_macro(
|
||||
ctype.h
|
||||
DEPENDS
|
||||
.llvm_libc_common_h
|
||||
.llvm-libc-types.locale_t
|
||||
)
|
||||
|
||||
add_header_macro(
|
||||
@ -720,18 +719,6 @@ add_header_macro(
|
||||
.llvm-libc-types.wchar_t
|
||||
)
|
||||
|
||||
add_header_macro(
|
||||
locale
|
||||
../libc/newhdrgen/yaml/locale.yaml
|
||||
locale.h.def
|
||||
locale.h
|
||||
DEPENDS
|
||||
.llvm_libc_common_h
|
||||
.llvm-libc-macros.locale_macros
|
||||
.llvm-libc-types.locale_t
|
||||
.llvm-libc-types.struct_lconv
|
||||
)
|
||||
|
||||
if(LIBC_TARGET_OS_IS_GPU)
|
||||
file(MAKE_DIRECTORY ${LIBC_INCLUDE_DIR}/gpu)
|
||||
|
||||
|
||||
@ -295,9 +295,3 @@ add_macro_header(
|
||||
HDR
|
||||
elf-macros.h
|
||||
)
|
||||
|
||||
add_macro_header(
|
||||
locale_macros
|
||||
HDR
|
||||
locale-macros.h
|
||||
)
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
//===-- Definition of macros from locale.h --------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_MACROS_LOCALE_MACROS_H
|
||||
#define LLVM_LIBC_MACROS_LOCALE_MACROS_H
|
||||
|
||||
#include "../llvm-libc-types/locale_t.h"
|
||||
|
||||
#define LC_CTYPE 0
|
||||
#define LC_NUMERIC 1
|
||||
#define LC_TIME 2
|
||||
#define LC_COLLATE 3
|
||||
#define LC_MONETARY 4
|
||||
#define LC_MESSAGES 5
|
||||
#define LC_ALL 6
|
||||
|
||||
#define LC_GLOBAL_LOCALE ((locale_t)(-1))
|
||||
|
||||
#define LC_CTYPE_MASK (1 << LC_CTYPE)
|
||||
#define LC_NUMERIC_MASK (1 << LC_NUMERIC)
|
||||
#define LC_TIME_MASK (1 << LC_TIME)
|
||||
#define LC_COLLATE_MASK (1 << LC_COLLATE)
|
||||
#define LC_MONETARY_MASK (1 << LC_MONETARY)
|
||||
#define LC_MESSAGES_MASK (1 << LC_MESSAGES)
|
||||
#define LC_ALL_MASK 0x7fffffff
|
||||
|
||||
#endif // LLVM_LIBC_MACROS_LOCALE_MACROS_H
|
||||
@ -142,5 +142,3 @@ DEPENDS
|
||||
.fsblkcnt_t
|
||||
.fsfilcnt_t
|
||||
)
|
||||
add_header(locale_t HDR locale_t.h)
|
||||
add_header(struct_lconv HDR struct_lconv.h)
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Definition of type locale_t ---------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_TYPES_LOCALE_T_H
|
||||
#define LLVM_LIBC_TYPES_LOCALE_T_H
|
||||
|
||||
#define NUM_LOCALE_CATEGORIES 6
|
||||
|
||||
struct __locale_data;
|
||||
|
||||
struct __locale_t {
|
||||
struct __locale_data *data[NUM_LOCALE_CATEGORIES];
|
||||
};
|
||||
|
||||
typedef struct __locale_t *locale_t;
|
||||
|
||||
#endif // LLVM_LIBC_TYPES_LOCALE_T_H
|
||||
@ -1,39 +0,0 @@
|
||||
//===-- Definition of type lconv ------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_TYPES_LCONV_H
|
||||
#define LLVM_LIBC_TYPES_LCONV_H
|
||||
|
||||
struct lconv {
|
||||
char *decimal_point;
|
||||
char *thousands_sep;
|
||||
char *grouping;
|
||||
char *mon_decimal_point;
|
||||
char *mon_thousands_sep;
|
||||
char *mon_grouping;
|
||||
char *positive_sign;
|
||||
char *negative_sign;
|
||||
char *currency_symbol;
|
||||
char frac_digits;
|
||||
char p_cs_precedes;
|
||||
char n_cs_precedes;
|
||||
char p_sep_by_space;
|
||||
char n_sep_by_space;
|
||||
char p_sign_posn;
|
||||
char n_sign_posn;
|
||||
char *int_curr_symbol;
|
||||
char int_frac_digits;
|
||||
char int_p_cs_precedes;
|
||||
char int_n_cs_precedes;
|
||||
char int_p_sep_by_space;
|
||||
char int_n_sep_by_space;
|
||||
char int_p_sign_posn;
|
||||
char int_n_sign_posn;
|
||||
};
|
||||
|
||||
#endif // LLVM_LIBC_TYPES_LCONV_H
|
||||
@ -1,20 +0,0 @@
|
||||
//===-- C standard library header locale.h --------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_LOCALE_H
|
||||
#define LLVM_LIBC_LOCALE_H
|
||||
|
||||
#include "__llvm-libc-common.h"
|
||||
|
||||
#include "llvm-libc-macros/locale-macros.h"
|
||||
#include "llvm-libc-types/locale_t.h"
|
||||
#include "llvm-libc-types/struct_lconv.h"
|
||||
|
||||
%%public_api()
|
||||
|
||||
#endif // LLVM_LIBC_LOCALE_H
|
||||
@ -1,7 +1,6 @@
|
||||
header: ctype.h
|
||||
macros: []
|
||||
types:
|
||||
- type_name: locale_t
|
||||
types: []
|
||||
enums: []
|
||||
objects: []
|
||||
functions:
|
||||
@ -101,101 +100,4 @@ functions:
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- name: isalnum_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isalpha_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isblank_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: iscntrl_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isdigit_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isgraph_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: islower_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isprint_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: ispunct_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isspace_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isupper_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: isxdigit_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: tolower_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
- name: toupper_l
|
||||
standards:
|
||||
- stdc
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: int
|
||||
- type: locale_t
|
||||
functions: null
|
||||
|
||||
@ -1,41 +0,0 @@
|
||||
header: locale.h
|
||||
functions:
|
||||
- name: localeconv
|
||||
standards:
|
||||
- stdc
|
||||
return_type: struct lconv *
|
||||
arguments:
|
||||
- type: void
|
||||
- name: duplocale
|
||||
standards:
|
||||
- stdc
|
||||
return_type: locale_t
|
||||
arguments:
|
||||
- type: locale_t
|
||||
- name: freelocale
|
||||
standards:
|
||||
- stdc
|
||||
return_type: void
|
||||
arguments:
|
||||
- type: locale_t
|
||||
- name: newlocale
|
||||
standards:
|
||||
- stdc
|
||||
return_type: locale_t
|
||||
arguments:
|
||||
- type: int
|
||||
- type: const char *
|
||||
- type: locale_t
|
||||
- name: setlocale
|
||||
standards:
|
||||
- stdc
|
||||
return_type: char *
|
||||
arguments:
|
||||
- type: int
|
||||
- type: const char *
|
||||
- name: uselocale
|
||||
standards:
|
||||
- stdc
|
||||
return_type: locale_t
|
||||
arguments:
|
||||
- type: locale_t
|
||||
@ -4,7 +4,6 @@ def StdC : StandardSpec<"stdc"> {
|
||||
PtrType StructTmPtr = PtrType<StructTmType>;
|
||||
PtrType TimeTTypePtr = PtrType<TimeTType>;
|
||||
NamedType ClockT = NamedType<"clock_t">;
|
||||
NamedType LocaleT = NamedType<"locale_t">;
|
||||
|
||||
NamedType DivTType = NamedType<"div_t">;
|
||||
NamedType LDivTType = NamedType<"ldiv_t">;
|
||||
@ -35,9 +34,7 @@ def StdC : StandardSpec<"stdc"> {
|
||||
HeaderSpec CType = HeaderSpec<
|
||||
"ctype.h",
|
||||
[], // Macros
|
||||
[
|
||||
LocaleT
|
||||
], // Types
|
||||
[], // Types
|
||||
[], // Enumerations
|
||||
[
|
||||
FunctionSpec<
|
||||
@ -110,76 +107,6 @@ def StdC : StandardSpec<"stdc"> {
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isalnum_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isalpha_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isblank_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"iscntrl_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isdigit_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isgraph_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"islower_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isprint_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"ispunct_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isspace_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isupper_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"isxdigit_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"tolower_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"toupper_l",
|
||||
RetValSpec<IntType>,
|
||||
[ArgSpec<IntType>, ArgSpec<LocaleT>]
|
||||
>,
|
||||
]
|
||||
>;
|
||||
|
||||
@ -1664,61 +1591,6 @@ def StdC : StandardSpec<"stdc"> {
|
||||
]
|
||||
>;
|
||||
|
||||
|
||||
NamedType StructLconv : NamedType<"struct lconv">;
|
||||
PtrType StructLconvPtr : PtrType<StructLconv>;
|
||||
|
||||
HeaderSpec Locale = HeaderSpec<
|
||||
"locale.h",
|
||||
[], // Macros
|
||||
[LocaleT, StructLconv], // Types
|
||||
[], // Enumerations
|
||||
[
|
||||
FunctionSpec<
|
||||
"duplocale",
|
||||
RetValSpec<LocaleT>,
|
||||
[
|
||||
ArgSpec<LocaleT>
|
||||
]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"freelocale",
|
||||
RetValSpec<VoidType>,
|
||||
[
|
||||
ArgSpec<LocaleT>
|
||||
]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"localeconv",
|
||||
RetValSpec<StructLconvPtr>,
|
||||
[]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"newlocale",
|
||||
RetValSpec<LocaleT>,
|
||||
[
|
||||
ArgSpec<IntType>,
|
||||
ArgSpec<ConstCharPtr>,
|
||||
ArgSpec<LocaleT>
|
||||
]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"setlocale",
|
||||
RetValSpec<CharPtr>,
|
||||
[
|
||||
ArgSpec<IntType>,
|
||||
ArgSpec<ConstCharPtr>
|
||||
]
|
||||
>,
|
||||
FunctionSpec<
|
||||
"uselocale",
|
||||
RetValSpec<LocaleT>,
|
||||
[
|
||||
ArgSpec<LocaleT>
|
||||
]
|
||||
>
|
||||
] // Functions
|
||||
>;
|
||||
|
||||
let Headers = [
|
||||
Assert,
|
||||
@ -1741,6 +1613,5 @@ def StdC : StandardSpec<"stdc"> {
|
||||
Time,
|
||||
UChar,
|
||||
WChar,
|
||||
Locale,
|
||||
];
|
||||
}
|
||||
|
||||
@ -40,4 +40,3 @@ add_subdirectory(signal)
|
||||
add_subdirectory(spawn)
|
||||
add_subdirectory(threads)
|
||||
add_subdirectory(time)
|
||||
add_subdirectory(locale)
|
||||
|
||||
@ -146,159 +146,3 @@ add_entrypoint_object(
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
)
|
||||
|
||||
# Do not build the locale versions in overlay mode.
|
||||
if(NOT LLVM_LIBC_FULL_BUILD)
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_entrypoint_object(
|
||||
isalnum_l
|
||||
SRCS
|
||||
isalnum_l.cpp
|
||||
HDRS
|
||||
isalnum_l.h
|
||||
DEPENDS
|
||||
libc.include.ctype
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isalpha_l
|
||||
SRCS
|
||||
isalpha_l.cpp
|
||||
HDRS
|
||||
isalpha_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isblank_l
|
||||
SRCS
|
||||
isblank_l.cpp
|
||||
HDRS
|
||||
isblank_l.h
|
||||
DEPENDS
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
iscntrl_l
|
||||
SRCS
|
||||
iscntrl_l.cpp
|
||||
HDRS
|
||||
iscntrl_l.h
|
||||
DEPENDS
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isdigit_l
|
||||
SRCS
|
||||
isdigit_l.cpp
|
||||
HDRS
|
||||
isdigit_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isgraph_l
|
||||
SRCS
|
||||
isgraph_l.cpp
|
||||
HDRS
|
||||
isgraph_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
islower_l
|
||||
SRCS
|
||||
islower_l.cpp
|
||||
HDRS
|
||||
islower_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isprint_l
|
||||
SRCS
|
||||
isprint_l.cpp
|
||||
HDRS
|
||||
isprint_l.h
|
||||
DEPENDS
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
ispunct_l
|
||||
SRCS
|
||||
ispunct_l.cpp
|
||||
HDRS
|
||||
ispunct_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isspace_l
|
||||
SRCS
|
||||
isspace_l.cpp
|
||||
HDRS
|
||||
isspace_l.h
|
||||
DEPENDS
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isupper_l
|
||||
SRCS
|
||||
isupper_l.cpp
|
||||
HDRS
|
||||
isupper_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
isxdigit_l
|
||||
SRCS
|
||||
isxdigit_l.cpp
|
||||
HDRS
|
||||
isxdigit_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
tolower_l
|
||||
SRCS
|
||||
tolower_l.cpp
|
||||
HDRS
|
||||
tolower_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
toupper_l
|
||||
SRCS
|
||||
toupper_l.cpp
|
||||
HDRS
|
||||
toupper_l.h
|
||||
DEPENDS
|
||||
libc.src.__support.ctype_utils
|
||||
libc.hdr.types.locale_t
|
||||
)
|
||||
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isalnum, (int c)) {
|
||||
return static_cast<int>(internal::isalnum(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of isalnum -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isalnum_l.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isalnum_l, (int c, locale_t)) {
|
||||
return static_cast<int>(internal::isalnum(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isalnum_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISALNUM_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISALNUM_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isalnum_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISALNUM_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isalpha, (int c)) {
|
||||
return static_cast<int>(internal::isalpha(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of isalpha -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isalpha_l.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isalpha_l, (int c, locale_t)) {
|
||||
return static_cast<int>(internal::isalpha(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isalpha_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISALPHA_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISALPHA_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isalpha_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISALPHA_H
|
||||
@ -13,6 +13,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isblank, (int c)) {
|
||||
return static_cast<int>(c == ' ' || c == '\t');
|
||||
}
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
//===-- Implementation of isblank -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isblank_l.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isblank_l, (int c, locale_t)) {
|
||||
return static_cast<int>(c == ' ' || c == '\t');
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isblank_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISBLANK_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISBLANK_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isblank_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISBLANK_H
|
||||
@ -13,6 +13,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, iscntrl, (int c)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(ch < 0x20 || ch == 0x7f);
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of iscntrl -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/iscntrl_l.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, iscntrl_l, (int c, locale_t)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(ch < 0x20 || ch == 0x7f);
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for iscntrl_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISCNTRL_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISCNTRL_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int iscntrl_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISCNTRL_H
|
||||
@ -13,6 +13,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isdigit, (int c)) {
|
||||
return static_cast<int>(internal::isdigit(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
//===-- Implementation of isdigit -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isdigit_l.h"
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isdigit_l, (int c, locale_t)) {
|
||||
return static_cast<int>(internal::isdigit(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isdigit_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISDIGIT_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISDIGIT_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isdigit_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISDIGIT_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isgraph, (int c)) {
|
||||
return static_cast<int>(internal::isgraph(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of isgraph -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isgraph_l.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isgraph_l, (int c, locale_t)) {
|
||||
return static_cast<int>(internal::isgraph(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isgraph_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISGRAPH_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISGRAPH_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isgraph_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISGRAPH_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, islower, (int c)) {
|
||||
return static_cast<int>(internal::islower(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of islower -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/islower_l.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, islower_l, (int c, locale_t)) {
|
||||
return static_cast<int>(internal::islower(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for islower_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISLOWER_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISLOWER_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int islower_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISLOWER_H
|
||||
@ -13,6 +13,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isprint, (int c)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>((ch - ' ') < 95);
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of isprint -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isprint_l.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isprint_l, (int c, locale_t)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>((ch - ' ') < 95);
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isprint_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISPRINT_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISPRINT_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isprint_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISPRINT_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, ispunct, (int c)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(!internal::isalnum(ch) && internal::isgraph(ch));
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation of ispunct -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/ispunct_l.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, ispunct_l, (int c, locale_t)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(!internal::isalnum(ch) && internal::isgraph(ch));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for ispunct_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISPUNCT_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISPUNCT_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int ispunct_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISPUNCT_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isspace, (int c)) {
|
||||
return static_cast<int>(internal::isspace(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of isspace -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isspace_l.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isspace_l, (int c, locale_t)) {
|
||||
return static_cast<int>(internal::isspace(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isspace_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISSPACE_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISSPACE_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isspace_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISSPACE_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isupper, (int c)) {
|
||||
return static_cast<int>(internal::isupper(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of isupper -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isupper_l.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isupper_l, (int c, locale_t)) {
|
||||
return static_cast<int>(internal::isupper(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isupper_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISUPPER_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISUPPER_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isupper_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISUPPER_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isxdigit, (int c)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(internal::isdigit(ch) || (ch | 32) - 'a' < 6);
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation of isxdigit ----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/isxdigit_l.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isxdigit_l, (int c, locale_t)) {
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(internal::isdigit(ch) || (ch | 32) - 'a' < 6);
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for isxdigit_l ----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_ISXDIGIT_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_ISXDIGIT_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int isxdigit_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_ISXDIGIT_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, tolower, (int c)) { return internal::tolower(c); }
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of tolower -----------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/tolower_l.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, tolower_l, (int c, locale_t)) {
|
||||
return internal::tolower(c);
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for tolower_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_TOLOWER_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_TOLOWER_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int tolower_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_TOLOWER_H
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, toupper, (int c)) {
|
||||
if (internal::islower(c))
|
||||
return c - ('a' - 'A');
|
||||
|
||||
@ -1,23 +0,0 @@
|
||||
//===-- Implementation of toupper_l ---------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/ctype/toupper_l.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, toupper_l, (int c, locale_t)) {
|
||||
if (internal::islower(c))
|
||||
return c - ('a' - 'A');
|
||||
return c;
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation header for toupper_l -----------------------*-C++-*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_CTYPE_TOUPPER_H
|
||||
#define LLVM_LIBC_SRC_CTYPE_TOUPPER_H
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
int toupper_l(int c, locale_t locale);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_CTYPE_TOUPPER_H
|
||||
@ -1,76 +0,0 @@
|
||||
add_object_library(
|
||||
locale
|
||||
SRCS
|
||||
locale.cpp
|
||||
HDRS
|
||||
locale.h
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
localeconv
|
||||
SRCS
|
||||
localeconv.cpp
|
||||
HDRS
|
||||
localeconv.h
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
CXX_STANDARD
|
||||
20 # For designated initializers
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
newlocale
|
||||
SRCS
|
||||
newlocale.cpp
|
||||
HDRS
|
||||
newlocale.h
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
.locale
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
duplocale
|
||||
SRCS
|
||||
duplocale.cpp
|
||||
HDRS
|
||||
duplocale.h
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
.locale
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
setlocale
|
||||
SRCS
|
||||
setlocale.cpp
|
||||
HDRS
|
||||
setlocale.h
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
.locale
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
uselocale
|
||||
SRCS
|
||||
uselocale.cpp
|
||||
HDRS
|
||||
uselocale.h
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
.locale
|
||||
)
|
||||
|
||||
add_entrypoint_object(
|
||||
freelocale
|
||||
SRCS
|
||||
freelocale.cpp
|
||||
HDRS
|
||||
freelocale.h
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
.locale
|
||||
)
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of duplocale ---------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/duplocale.h"
|
||||
#include "include/llvm-libc-macros/locale-macros.h"
|
||||
#include "src/locale/locale.h"
|
||||
|
||||
#include "src/__support/CPP/string_view.h"
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(locale_t, duplocale, (locale_t loc)) { return loc; }
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation header for duplocale ---------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_LOCALE_DUPLOCALE_H
|
||||
#define LLVM_LIBC_SRC_LOCALE_DUPLOCALE_H
|
||||
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
locale_t duplocale(locale_t loc);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_LOCALE_DUPLOCALE_H
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of freelocale --------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/freelocale.h"
|
||||
#include "include/llvm-libc-macros/locale-macros.h"
|
||||
#include "src/locale/locale.h"
|
||||
|
||||
#include "src/__support/CPP/string_view.h"
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(void, freelocale, (locale_t)) {}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation header for freelocale --------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_LOCALE_FREELOCALE_H
|
||||
#define LLVM_LIBC_SRC_LOCALE_FREELOCALE_H
|
||||
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
void freelocale(locale_t loc);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_LOCALE_FREELOCALE_H
|
||||
@ -1,21 +0,0 @@
|
||||
//===-- Implementation of locale ------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/locale.h"
|
||||
|
||||
#include "include/llvm-libc-macros/locale-macros.h"
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
__locale_t c_locale = {nullptr};
|
||||
|
||||
LIBC_THREAD_LOCAL locale_t locale = nullptr;
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,36 +0,0 @@
|
||||
//===-- Implementation header for the locale --------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_LOCALE_LOCALECONV_H
|
||||
#define LLVM_LIBC_SRC_LOCALE_LOCALECONV_H
|
||||
|
||||
#include "src/__support/macros/attributes.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
// We only support the "C" locale right now.
|
||||
static constexpr size_t MAX_LOCALE_NAME_SIZE = 2;
|
||||
|
||||
struct __locale_data {
|
||||
char name[MAX_LOCALE_NAME_SIZE];
|
||||
};
|
||||
|
||||
// The pointer to the default "C" locale.
|
||||
extern __locale_t c_locale;
|
||||
|
||||
// The global locale instance.
|
||||
LIBC_THREAD_LOCAL extern locale_t locale;
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_LOCALE_LOCALECONV_H
|
||||
@ -1,49 +0,0 @@
|
||||
//===-- Implementation of localeconv --------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/localeconv.h"
|
||||
|
||||
#include "src/__support/CPP/limits.h"
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
static char DOT_STRING[] = ".";
|
||||
static char EMPTY_STRING[] = "";
|
||||
|
||||
static struct lconv C_LCONV = {
|
||||
.decimal_point = DOT_STRING,
|
||||
.thousands_sep = EMPTY_STRING,
|
||||
.grouping = EMPTY_STRING,
|
||||
.mon_decimal_point = EMPTY_STRING,
|
||||
.mon_thousands_sep = EMPTY_STRING,
|
||||
.mon_grouping = EMPTY_STRING,
|
||||
.positive_sign = EMPTY_STRING,
|
||||
.negative_sign = EMPTY_STRING,
|
||||
.currency_symbol = EMPTY_STRING,
|
||||
.frac_digits = CHAR_MAX,
|
||||
.p_cs_precedes = CHAR_MAX,
|
||||
.n_cs_precedes = CHAR_MAX,
|
||||
.p_sep_by_space = CHAR_MAX,
|
||||
.n_sep_by_space = CHAR_MAX,
|
||||
.p_sign_posn = CHAR_MAX,
|
||||
.n_sign_posn = CHAR_MAX,
|
||||
.int_curr_symbol = EMPTY_STRING,
|
||||
.int_frac_digits = CHAR_MAX,
|
||||
.int_p_cs_precedes = CHAR_MAX,
|
||||
.int_n_cs_precedes = CHAR_MAX,
|
||||
.int_p_sep_by_space = CHAR_MAX,
|
||||
.int_n_sep_by_space = CHAR_MAX,
|
||||
.int_p_sign_posn = CHAR_MAX,
|
||||
.int_n_sign_posn = CHAR_MAX,
|
||||
};
|
||||
|
||||
LLVM_LIBC_FUNCTION(struct lconv *, localeconv, ()) { return &C_LCONV; }
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation header for localeconv --------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_LOCALE_LOCALECONV_H
|
||||
#define LLVM_LIBC_SRC_LOCALE_LOCALECONV_H
|
||||
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
#include "include/llvm-libc-types/struct_lconv.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
struct lconv *localeconv();
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_LOCALE_LOCALECONV_H
|
||||
@ -1,28 +0,0 @@
|
||||
//===-- Implementation of newlocale ---------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/newlocale.h"
|
||||
#include "include/llvm-libc-macros/locale-macros.h"
|
||||
#include "src/locale/locale.h"
|
||||
|
||||
#include "src/__support/CPP/string_view.h"
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(locale_t, newlocale,
|
||||
(int category_mask, const char *locale_name, locale_t)) {
|
||||
cpp::string_view name(locale_name);
|
||||
if (category_mask > LC_ALL || (!name.empty() && name != "C"))
|
||||
return nullptr;
|
||||
|
||||
return &c_locale;
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation header for setlocale ---------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_LOCALE_SETLOCALE_H
|
||||
#define LLVM_LIBC_SRC_LOCALE_SETLOCALE_H
|
||||
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
locale_t newlocale(int category_mask, const char *locale_name, locale_t base);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_LOCALE_SETLOCALE_H
|
||||
@ -1,28 +0,0 @@
|
||||
//===-- Implementation of setlocale ---------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/setlocale.h"
|
||||
#include "include/llvm-libc-macros/locale-macros.h"
|
||||
#include "src/locale/locale.h"
|
||||
|
||||
#include "src/__support/CPP/string_view.h"
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(char *, setlocale, (int category, const char *locale_name)) {
|
||||
cpp::string_view name(locale_name);
|
||||
if (category > LC_ALL || (!name.empty() && name != "C"))
|
||||
return nullptr;
|
||||
|
||||
static char locale_str[] = "C";
|
||||
return locale_str;
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation header for setlocale ---------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_LOCALE_SETLOCALE_H
|
||||
#define LLVM_LIBC_SRC_LOCALE_SETLOCALE_H
|
||||
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
char *setlocale(int category, const char *locale_name);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_LOCALE_SETLOCALE_H
|
||||
@ -1,23 +0,0 @@
|
||||
//===-- Implementation of uselocale ---------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/uselocale.h"
|
||||
#include "src/locale/locale.h"
|
||||
|
||||
#include "src/__support/common.h"
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
LLVM_LIBC_FUNCTION(locale_t, uselocale, (locale_t newloc)) {
|
||||
if (!newloc)
|
||||
return locale;
|
||||
return locale = newloc;
|
||||
}
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
@ -1,22 +0,0 @@
|
||||
//===-- Implementation header for uselocale ---------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIBC_SRC_LOCALE_USELOCALE_H
|
||||
#define LLVM_LIBC_SRC_LOCALE_USELOCALE_H
|
||||
|
||||
#include "src/__support/macros/config.h"
|
||||
|
||||
#include "hdr/types/locale_t.h"
|
||||
|
||||
namespace LIBC_NAMESPACE_DECL {
|
||||
|
||||
locale_t uselocale(locale_t newloc);
|
||||
|
||||
} // namespace LIBC_NAMESPACE_DECL
|
||||
|
||||
#endif // LLVM_LIBC_SRC_LOCALE_USELOCALE_H
|
||||
@ -82,7 +82,6 @@ add_subdirectory(setjmp)
|
||||
add_subdirectory(signal)
|
||||
add_subdirectory(spawn)
|
||||
add_subdirectory(time)
|
||||
add_subdirectory(locale)
|
||||
|
||||
if(${LIBC_TARGET_OS} STREQUAL "linux")
|
||||
add_subdirectory(pthread)
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
add_custom_target(libc-locale-tests)
|
||||
|
||||
add_libc_test(
|
||||
locale_test
|
||||
SUITE
|
||||
libc-locale-tests
|
||||
SRCS
|
||||
locale_test.cpp
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
libc.src.locale.newlocale
|
||||
libc.src.locale.uselocale
|
||||
libc.src.locale.freelocale
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
localeconv_test
|
||||
SUITE
|
||||
libc-locale-tests
|
||||
SRCS
|
||||
localeconv_test.cpp
|
||||
DEPENDS
|
||||
libc.include.locale
|
||||
libc.src.locale.localeconv
|
||||
)
|
||||
@ -1,27 +0,0 @@
|
||||
//===-- Unittests for locale ----------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/locale/freelocale.h"
|
||||
#include "src/locale/newlocale.h"
|
||||
#include "src/locale/uselocale.h"
|
||||
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
#include "include/llvm-libc-macros/locale-macros.h"
|
||||
|
||||
TEST(LlvmLibcLocale, DefaultLocale) {
|
||||
locale_t new_locale = LIBC_NAMESPACE::newlocale(LC_ALL, "C", nullptr);
|
||||
EXPECT_NE(new_locale, static_cast<locale_t>(nullptr));
|
||||
|
||||
locale_t old_locale = LIBC_NAMESPACE::uselocale(new_locale);
|
||||
EXPECT_NE(old_locale, static_cast<locale_t>(nullptr));
|
||||
|
||||
LIBC_NAMESPACE::freelocale(new_locale);
|
||||
|
||||
LIBC_NAMESPACE::uselocale(old_locale);
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
//===-- Unittests for localeconv ------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "include/llvm-libc-macros/locale-macros.h"
|
||||
#include "src/locale/localeconv.h"
|
||||
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
TEST(LlvmLibcLocale, DefaultLocale) {
|
||||
struct lconv *conv = LIBC_NAMESPACE::localeconv();
|
||||
EXPECT_STREQ(conv->decimal_point, ".");
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user