[libcxx-commits] [libcxx] [libc++][z/OS] Move z/OS to new locale API and resolve all name collisions (PR #165428)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Oct 28 09:14:10 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,,h -- libcxx/include/__locale_dir/support/zos.h libcxx/include/__support/ibm/vasprintf.h libcxx/src/support/ibm/localeconv.cpp libcxx/test/libcxx/internal.zos.locale.funcs.compile.pass.cpp libcxx/test/libcxx/internal.zos.mbsnrtowcs.compile.pass.cpp libcxx/test/libcxx/internal.zos.nanosleep.compile.pass.cpp libcxx/test/libcxx/internal.zos.wcsnrtombs.compile.pass.cpp libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.c.pass.cpp libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.cxx.pass.cpp libcxx/include/__locale_dir/locale_base_api.h libcxx/include/__undef_macros libcxx/include/wchar.h libcxx/src/support/ibm/mbsnrtowcs.cpp libcxx/src/support/ibm/wcsnrtombs.cpp libcxx/src/support/ibm/xlocale_zos.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/libcxx/include/__locale_dir/locale_base_api.h b/libcxx/include/__locale_dir/locale_base_api.h
index 9a8202a8c..9ef977a98 100644
--- a/libcxx/include/__locale_dir/locale_base_api.h
+++ b/libcxx/include/__locale_dir/locale_base_api.h
@@ -132,7 +132,7 @@ LIBCPP_PUSH_MACROS
// (by providing global non-reserved names) and the new API. As we move individual platforms
// towards the new way of defining the locale base API, this should disappear since each platform
// will define those directly.
-# if defined(_AIX)
+# if defined(_AIX)
# include <__locale_dir/locale_base_api/ibm.h>
# elif defined(__OpenBSD__)
# include <__locale_dir/locale_base_api/openbsd.h>
diff --git a/libcxx/src/support/ibm/localeconv.cpp b/libcxx/src/support/ibm/localeconv.cpp
index 4ab6b7a75..85d0b2c1e 100644
--- a/libcxx/src/support/ibm/localeconv.cpp
+++ b/libcxx/src/support/ibm/localeconv.cpp
@@ -13,18 +13,17 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-lconv *__libcpp_localeconv_l(locale_t& __l)
-{
+lconv* __libcpp_localeconv_l(locale_t& __l) {
__locale::__locale_guard __current(__l);
- lconv * lc = localeconv();
+ lconv* lc = localeconv();
static lconv newlc;
newlc = *lc;
- enum {max_char_num = 20};
-#define DeepCopy(mbr) \
- static char buf_##mbr[max_char_num]; \
- strncpy(buf_##mbr, lc->mbr, max_char_num); \
+ enum { max_char_num = 20 };
+#define DeepCopy(mbr) \
+ static char buf_##mbr[max_char_num]; \
+ strncpy(buf_##mbr, lc->mbr, max_char_num); \
newlc.mbr = buf_##mbr;
DeepCopy(decimal_point);
diff --git a/libcxx/src/support/ibm/mbsnrtowcs.cpp b/libcxx/src/support/ibm/mbsnrtowcs.cpp
index 590ac0617..6e870cff7 100644
--- a/libcxx/src/support/ibm/mbsnrtowcs.cpp
+++ b/libcxx/src/support/ibm/mbsnrtowcs.cpp
@@ -23,12 +23,11 @@ namespace __ibm {
// Returns (size_t) -1 when an invalid sequence is encountered.
// Leaves *`src` pointing to the next character to convert or NULL
// if a null character was converted from *`src`.
-size_t mbsnrtowcs(
- wchar_t* __restrict dst,
- const char** __restrict src,
- size_t src_size_bytes,
- size_t max_dest_chars,
- mbstate_t* __restrict ps) {
+size_t mbsnrtowcs(wchar_t* __restrict dst,
+ const char** __restrict src,
+ size_t src_size_bytes,
+ size_t max_dest_chars,
+ mbstate_t* __restrict ps) {
const size_t terminated_sequence = static_cast<size_t>(0);
const size_t invalid_sequence = static_cast<size_t>(-1);
const size_t incomplete_sequence = static_cast<size_t>(-2);
@@ -101,9 +100,7 @@ size_t mbsnrtowcs(
return dest_converted;
}
-size_t __libcpp_mbsnrtowcs_l(wchar_t * dest, const char **src, size_t nms,
- size_t len, mbstate_t *ps, locale_t l)
-{
+size_t __libcpp_mbsnrtowcs_l(wchar_t* dest, const char** src, size_t nms, size_t len, mbstate_t* ps, locale_t l) {
__locale::__locale_guard current(l);
return mbsnrtowcs(dest, src, nms, len, ps);
}
diff --git a/libcxx/src/support/ibm/wcsnrtombs.cpp b/libcxx/src/support/ibm/wcsnrtombs.cpp
index 437ea52ec..c9d6744d5 100644
--- a/libcxx/src/support/ibm/wcsnrtombs.cpp
+++ b/libcxx/src/support/ibm/wcsnrtombs.cpp
@@ -22,12 +22,11 @@ namespace __ibm {
// converted from *src, excluding the null terminator.
// Returns (size_t) -1 if an error occurs and sets errno.
// If `dst` is NULL, `dst_size_bytes` is ignored and no bytes are copied to `dst`.
-size_t wcsnrtombs(
- char* __restrict dst,
- const wchar_t** __restrict src,
- size_t max_source_chars,
- size_t dst_size_bytes,
- mbstate_t* __restrict ps) {
+size_t wcsnrtombs(char* __restrict dst,
+ const wchar_t** __restrict src,
+ size_t max_source_chars,
+ size_t dst_size_bytes,
+ mbstate_t* __restrict ps) {
const size_t invalid_wchar = static_cast<size_t>(-1);
size_t source_converted;
@@ -98,9 +97,7 @@ size_t wcsnrtombs(
return dest_converted;
}
-size_t __libcpp_wcsnrtombs_l(char *dest, const wchar_t **src, size_t nwc,
- size_t len, mbstate_t *ps, locale_t l)
-{
+size_t __libcpp_wcsnrtombs_l(char* dest, const wchar_t** src, size_t nwc, size_t len, mbstate_t* ps, locale_t l) {
__locale::__locale_guard __current(l);
return wcsnrtombs(dest, src, nwc, len, ps);
}
diff --git a/libcxx/src/support/ibm/xlocale_zos.cpp b/libcxx/src/support/ibm/xlocale_zos.cpp
index 22bc0b0f7..2e4cca41f 100644
--- a/libcxx/src/support/ibm/xlocale_zos.cpp
+++ b/libcxx/src/support/ibm/xlocale_zos.cpp
@@ -14,61 +14,58 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#define CategoryList(pair, sep) \
- pair(LC_COLLATE, lc_collate) sep \
- pair(LC_CTYPE, lc_ctype) sep \
- pair(LC_MONETARY, lc_monetary) sep \
- pair(LC_NUMERIC, lc_numeric) sep \
- pair(LC_TIME, lc_time) sep \
- pair(LC_MESSAGES, lc_messages)
+#define CategoryList(pair, sep) \
+ pair(LC_COLLATE, lc_collate) sep pair(LC_CTYPE, lc_ctype) \
+ sep pair(LC_MONETARY, lc_monetary) \
+ sep pair(LC_NUMERIC, lc_numeric) \
+ sep pair(LC_TIME, lc_time) \
+ sep pair(LC_MESSAGES, lc_messages)
// check ids and masks agree
-#define check_ids_and_masks_agree(id, _) \
- static_assert((1 << id) == id##_MASK, "id and mask do not agree for " #id); \
+#define check_ids_and_masks_agree(id, _) \
+ static_assert((1 << id) == id##_MASK, "id and mask do not agree for " #id); \
static_assert((1 << id) == _CATMASK(id), "mask does not have expected value for " #id);
-CategoryList(check_ids_and_masks_agree,)
+CategoryList(check_ids_and_masks_agree, )
#undef check_ids_and_masks_agree
// check that LC_ALL_MASK is defined as expected
#define get_mask(id, _) id##_MASK
-static_assert(LC_ALL_MASK == (CategoryList(get_mask, |)), "LC_ALL_MASK does not have the expected value. Check that its definition includes all supported categories");
+ static_assert(
+ LC_ALL_MASK == (CategoryList(get_mask, |)),
+ "LC_ALL_MASK does not have the expected value. Check that its definition includes all supported categories");
#undef get_mask
-
// initialize c_locale
#define init_clocale(id, locale_member) "C",
-static locale_struct c_locale = { LC_ALL_MASK, CategoryList(init_clocale, ) };
+static locale_struct c_locale = {LC_ALL_MASK, CategoryList(init_clocale, )};
#undef init_clocale
static locale_t current_locale = _LIBCPP_LC_GLOBAL_LOCALE;
-
-locale_t __c_locale() {
- return &c_locale;
-}
+locale_t __c_locale() { return &c_locale; }
// locale
locale_t newlocale(int category_mask, const char* locale, locale_t base) {
// start with some basic checks
- if (! locale) {
+ if (!locale) {
errno = EINVAL;
- return (locale_t) 0;
+ return (locale_t)0;
}
if (category_mask & ~LC_ALL_MASK) {
// then there are bits in category_mask that does not correspond
// to a valid category
errno = EINVAL;
- return (locale_t) 0;
+ return (locale_t)0;
}
- locale_t new_loc = new locale_struct;
+ locale_t new_loc = new locale_struct;
int num_locales_not_found = 0;
if (base && base != _LIBCPP_LC_GLOBAL_LOCALE)
*new_loc = *base;
- auto set_for_category = [&](int id, int mask, std::string &setting) {
- const char *setting_to_apply = nullptr;
+ auto set_for_category = [&](int id, int mask, std::string& setting) {
+ const char* setting_to_apply = nullptr;
if (category_mask & mask)
setting_to_apply = locale;
@@ -77,7 +74,7 @@ locale_t newlocale(int category_mask, const char* locale, locale_t base) {
if (setting_to_apply) {
// setlocale takes the id, not the mask
- const char *saved_setting = setlocale(id, nullptr);
+ const char* saved_setting = setlocale(id, nullptr);
if (setlocale(id, setting_to_apply)) {
// then setting_to_apply is valid for this category
// restore the saved setting
@@ -99,8 +96,8 @@ locale_t newlocale(int category_mask, const char* locale, locale_t base) {
if (num_locales_not_found != 0) {
delete new_loc;
- errno = ENOENT;
- new_loc = (locale_t) 0;
+ errno = ENOENT;
+ new_loc = (locale_t)0;
}
return new_loc;
@@ -117,12 +114,12 @@ locale_t uselocale(locale_t new_loc) {
if (new_loc == _LIBCPP_LC_GLOBAL_LOCALE) {
current_locale = _LIBCPP_LC_GLOBAL_LOCALE;
} else if (new_loc != nullptr) {
- locale_struct saved_locale;
+ locale_struct saved_locale;
saved_locale.category_mask = 0;
- auto apply_category = [&](int id, int mask, std::string &setting, std::string &save_setting)-> bool {
+ auto apply_category = [&](int id, int mask, std::string& setting, std::string& save_setting) -> bool {
if (new_loc->category_mask & mask) {
- const char *old_setting = setlocale(id, setting.c_str());
+ const char* old_setting = setlocale(id, setting.c_str());
if (old_setting) {
// we were able to set for this category. Save the old setting
// in case a subsequent category fails, and we need to restore
@@ -136,17 +133,17 @@ locale_t uselocale(locale_t new_loc) {
return true;
};
-#define Apply(id, locale_member) apply_category(id, id##_MASK, new_loc->locale_member, saved_locale. locale_member)
+#define Apply(id, locale_member) apply_category(id, id##_MASK, new_loc->locale_member, saved_locale.locale_member)
bool is_ok = CategoryList(Apply, &&);
#undef Apply
if (!is_ok) {
- auto restore = [&](int id, int mask, std::string &setting) {
+ auto restore = [&](int id, int mask, std::string& setting) {
if (saved_locale.category_mask & mask)
setlocale(id, setting.c_str());
};
-#define Restore(id, locale_member) restore(id, id##_MASK, saved_locale. locale_member);
- CategoryList(Restore,);
+#define Restore(id, locale_member) restore(id, id##_MASK, saved_locale.locale_member);
+ CategoryList(Restore, );
#undef Restore
errno = EINVAL;
return nullptr;
@@ -157,154 +154,154 @@ locale_t uselocale(locale_t new_loc) {
return prev_loc;
}
-int isdigit_l(int __c, locale_t __l) {
+int isdigit_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isdigit(__c);
}
-int isxdigit_l(int __c, locale_t __l) {
+int isxdigit_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isxdigit(__c);
}
namespace __locale {
namespace __ibm {
-int isalnum_l(int __c, locale_t __l) {
+int isalnum_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isalnum(__c);
}
-int isalpha_l(int __c, locale_t __l) {
+int isalpha_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isalpha(__c);
}
-int isblank_l(int __c, locale_t __l) {
+int isblank_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isblank(__c);
}
-int iscntrl_l(int __c, locale_t __l) {
+int iscntrl_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iscntrl(__c);
}
-int isgraph_l(int __c, locale_t __l) {
+int isgraph_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isgraph(__c);
}
-int islower_l(int __c, locale_t __l) {
+int islower_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::islower(__c);
}
-int isprint_l(int __c, locale_t __l) {
+int isprint_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isprint(__c);
}
-int ispunct_l(int __c, locale_t __l) {
+int ispunct_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::ispunct(__c);
}
-int isspace_l(int __c, locale_t __l) {
+int isspace_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isspace(__c);
}
-int isupper_l(int __c, locale_t __l) {
+int isupper_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::isupper(__c);
}
-int iswalnum_l(wint_t __c, locale_t __l) {
+int iswalnum_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswalnum(__c);
}
-int iswalpha_l(wint_t __c, locale_t __l) {
+int iswalpha_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswalpha(__c);
}
-int iswblank_l(wint_t __c, locale_t __l) {
+int iswblank_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswblank(__c);
}
-int iswcntrl_l(wint_t __c, locale_t __l) {
+int iswcntrl_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswcntrl(__c);
}
-int iswdigit_l(wint_t __c, locale_t __l) {
+int iswdigit_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswdigit(__c);
}
-int iswgraph_l(wint_t __c, locale_t __l) {
+int iswgraph_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswgraph(__c);
}
-int iswlower_l(wint_t __c, locale_t __l) {
+int iswlower_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswlower(__c);
}
-int iswprint_l(wint_t __c, locale_t __l) {
+int iswprint_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswprint(__c);
}
-int iswpunct_l(wint_t __c, locale_t __l) {
+int iswpunct_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswpunct(__c);
}
-int iswspace_l(wint_t __c, locale_t __l) {
+int iswspace_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswspace(__c);
}
-int iswupper_l(wint_t __c, locale_t __l) {
+int iswupper_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswupper(__c);
}
-int iswxdigit_l(wint_t __c, locale_t __l) {
+int iswxdigit_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswxdigit(__c);
}
-int toupper_l(int __c, locale_t __l) {
+int toupper_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::toupper(__c);
}
-int tolower_l(int __c, locale_t __l) {
+int tolower_l(int __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::tolower(__c);
}
-wint_t towupper_l(wint_t __c, locale_t __l) {
+wint_t towupper_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::towupper(__c);
}
-wint_t towlower_l(wint_t __c, locale_t __l) {
+wint_t towlower_l(wint_t __c, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::towlower(__c);
}
-int strcoll_l(const char *__s1, const char *__s2, locale_t __l) {
+int strcoll_l(const char* __s1, const char* __s2, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::strcoll(__s1, __s2);
}
-size_t strxfrm_l(char *__dest, const char *__src, size_t __n, locale_t __l) {
+size_t strxfrm_l(char* __dest, const char* __src, size_t __n, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::strxfrm(__dest, __src, __n);
}
@@ -314,17 +311,17 @@ size_t strftime_l(char* __s, size_t __max, const char* __format, const struct tm
return ::strftime(__s, __max, __format, __tm);
}
-int wcscoll_l(const wchar_t *__ws1, const wchar_t *__ws2, locale_t __l) {
+int wcscoll_l(const wchar_t* __ws1, const wchar_t* __ws2, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::wcscoll(__ws1, __ws2);
}
-size_t wcsxfrm_l(wchar_t *__dest, const wchar_t *__src, size_t __n, locale_t __l) {
+size_t wcsxfrm_l(wchar_t* __dest, const wchar_t* __src, size_t __n, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::wcsxfrm(__dest, __src, __n);
}
-int iswctype_l(wint_t __c, wctype_t __type, locale_t __l) {
+int iswctype_l(wint_t __c, wctype_t __type, locale_t __l) {
__locale::__locale_guard __newloc(__l);
return ::iswctype(__c, __type);
}
diff --git a/libcxx/test/libcxx/internal.zos.locale.funcs.compile.pass.cpp b/libcxx/test/libcxx/internal.zos.locale.funcs.compile.pass.cpp
index 846cdf686..9ca3b1572 100644
--- a/libcxx/test/libcxx/internal.zos.locale.funcs.compile.pass.cpp
+++ b/libcxx/test/libcxx/internal.zos.locale.funcs.compile.pass.cpp
@@ -9,7 +9,7 @@
// Test that version of the POSIX functions provided outside of libc++ don't
// cause compilation errors.
-struct locale_t { };
+struct locale_t {};
locale_t newlocale(int category_mask, const char* locale, locale_t base);
void freelocale(locale_t locobj);
locale_t uselocale(locale_t newloc);
diff --git a/libcxx/test/libcxx/internal.zos.mbsnrtowcs.compile.pass.cpp b/libcxx/test/libcxx/internal.zos.mbsnrtowcs.compile.pass.cpp
index fc5e5d8be..59ff3a1fc 100644
--- a/libcxx/test/libcxx/internal.zos.mbsnrtowcs.compile.pass.cpp
+++ b/libcxx/test/libcxx/internal.zos.mbsnrtowcs.compile.pass.cpp
@@ -12,14 +12,14 @@
#include <locale>
int main(int, char**) {
- const char* mb_string = "Hello, World!";
- wchar_t w_string[20];
- mbstate_t state;
- size_t mb_chars = strlen(mb_string);
- size_t w_chars = 0;
+ const char* mb_string = "Hello, World!";
+ wchar_t w_string[20];
+ mbstate_t state;
+ size_t mb_chars = strlen(mb_string);
+ size_t w_chars = 0;
- // Convert the multibyte string to a wide-character string
- w_chars = std::__locale::__ibm::mbsnrtowcs(w_string, &mb_string, mb_chars, 13, &state);
+ // Convert the multibyte string to a wide-character string
+ w_chars = std::__locale::__ibm::mbsnrtowcs(w_string, &mb_string, mb_chars, 13, &state);
- return w_chars == 13;
+ return w_chars == 13;
}
diff --git a/libcxx/test/libcxx/internal.zos.nanosleep.compile.pass.cpp b/libcxx/test/libcxx/internal.zos.nanosleep.compile.pass.cpp
index b7a6385b4..1f3e94a10 100644
--- a/libcxx/test/libcxx/internal.zos.nanosleep.compile.pass.cpp
+++ b/libcxx/test/libcxx/internal.zos.nanosleep.compile.pass.cpp
@@ -11,5 +11,5 @@
#include <time.h> // timespec
-int nanosleep(const struct timespec* , struct timespec* );
+int nanosleep(const struct timespec*, struct timespec*);
#include <mutex>
diff --git a/libcxx/test/libcxx/internal.zos.wcsnrtombs.compile.pass.cpp b/libcxx/test/libcxx/internal.zos.wcsnrtombs.compile.pass.cpp
index 1fabc7a43..efbc1e2e1 100644
--- a/libcxx/test/libcxx/internal.zos.wcsnrtombs.compile.pass.cpp
+++ b/libcxx/test/libcxx/internal.zos.wcsnrtombs.compile.pass.cpp
@@ -12,14 +12,14 @@
#include <locale>
int main(int, char**) {
- const wchar_t* w_string = L"Hello, World!";
- mbstate_t state;
- char mb_string[20];
- size_t w_chars = wcslen(w_string);
- size_t mb_chars = 0;
+ const wchar_t* w_string = L"Hello, World!";
+ mbstate_t state;
+ char mb_string[20];
+ size_t w_chars = wcslen(w_string);
+ size_t mb_chars = 0;
- // Convert the wide-character string to a multibyte string
- mb_chars = std::__locale::__ibm::wcsnrtombs(mb_string, &w_string, w_chars, 13, &state);
+ // Convert the wide-character string to a multibyte string
+ mb_chars = std::__locale::__ibm::wcsnrtombs(mb_string, &w_string, w_chars, 13, &state);
- return mb_chars == 13;
+ return mb_chars == 13;
}
diff --git a/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.c.pass.cpp b/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.c.pass.cpp
index cc7c9298f..dc2132de8 100644
--- a/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.c.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.c.pass.cpp
@@ -18,49 +18,48 @@
// to remove name collisions.
int main(int, char**) {
- setlocale(LC_ALL, "C");
- {
- char upper = 'A';
- char lower = 'a';
- assert(islower(lower));
- assert(tolower(upper) == lower);
- assert(isupper(upper));
- assert(toupper(lower) == upper);
- assert(isdigit('1'));
- assert(isxdigit('b'));
- }
+ setlocale(LC_ALL, "C");
+ {
+ char upper = 'A';
+ char lower = 'a';
+ assert(islower(lower));
+ assert(tolower(upper) == lower);
+ assert(isupper(upper));
+ assert(toupper(lower) == upper);
+ assert(isdigit('1'));
+ assert(isxdigit('b'));
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- wchar_t wspace = L' ';
- wchar_t wprint = L'^';
- wchar_t wcntrl = L'';
- wchar_t wupper = L'A';
- wchar_t wlower = L'a';
- wchar_t walpha = L'z';
- wchar_t wblank = L' ';
- wchar_t wdigit = L'1';
- wchar_t wpunct = L',';
- wchar_t wxdigit = L'B';
+ {
+ wchar_t wspace = L' ';
+ wchar_t wprint = L'^';
+ wchar_t wcntrl = L'';
+ wchar_t wupper = L'A';
+ wchar_t wlower = L'a';
+ wchar_t walpha = L'z';
+ wchar_t wblank = L' ';
+ wchar_t wdigit = L'1';
+ wchar_t wpunct = L',';
+ wchar_t wxdigit = L'B';
- assert(iswctype(L'A', wctype("alpha")));
- assert(iswctype(L'1', wctype("digit")));
- assert(iswspace(wspace));
- assert(iswprint(wprint));
- assert(iswcntrl(wcntrl));
- assert(iswupper(wupper));
- assert(iswlower(wlower));
- assert(iswalpha(walpha));
- assert(iswblank(wblank));
- assert(iswdigit(wdigit));
- assert(iswpunct(wpunct));
- assert(iswxdigit(wxdigit));
+ assert(iswctype(L'A', wctype("alpha")));
+ assert(iswctype(L'1', wctype("digit")));
+ assert(iswspace(wspace));
+ assert(iswprint(wprint));
+ assert(iswcntrl(wcntrl));
+ assert(iswupper(wupper));
+ assert(iswlower(wlower));
+ assert(iswalpha(walpha));
+ assert(iswblank(wblank));
+ assert(iswdigit(wdigit));
+ assert(iswpunct(wpunct));
+ assert(iswxdigit(wxdigit));
- assert(static_cast<wint_t>(wlower) == towlower(wupper));
- assert(static_cast<wint_t>(wupper) == towupper(wlower));
- }
+ assert(static_cast<wint_t>(wlower) == towlower(wupper));
+ assert(static_cast<wint_t>(wupper) == towupper(wlower));
+ }
#endif
- return 0;
+ return 0;
}
-
diff --git a/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.cxx.pass.cpp b/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.cxx.pass.cpp
index fed9c683d..07f5cbc9f 100644
--- a/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.cxx.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/ctype.cxx.pass.cpp
@@ -18,54 +18,53 @@
// to remove name collisions.
int main(int, char**) {
- std::locale loc("C");
- {
- char upper = 'A';
- char lower = 'a';
- char digit = '1';
- char xdigit = 'b';
- auto& CF = std::use_facet<std::ctype_byname<char>>(loc);
- assert(CF.is(std::ctype_base::lower, lower));
- assert(CF.is(std::ctype_base::upper, upper));
- assert(CF.is(std::ctype_base::digit, digit));
- assert(CF.is(std::ctype_base::xdigit, xdigit));
- assert(lower == CF.tolower(upper));
- assert(upper == CF.toupper(lower));
- }
+ std::locale loc("C");
+ {
+ char upper = 'A';
+ char lower = 'a';
+ char digit = '1';
+ char xdigit = 'b';
+ auto& CF = std::use_facet<std::ctype_byname<char>>(loc);
+ assert(CF.is(std::ctype_base::lower, lower));
+ assert(CF.is(std::ctype_base::upper, upper));
+ assert(CF.is(std::ctype_base::digit, digit));
+ assert(CF.is(std::ctype_base::xdigit, xdigit));
+ assert(lower == CF.tolower(upper));
+ assert(upper == CF.toupper(lower));
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- wchar_t wctype = L'A';
- wchar_t wspace = L' ';
- wchar_t wprint = L'^';
- wchar_t wcntrl = L'';
- wchar_t wupper = L'A';
- wchar_t wlower = L'a';
- wchar_t walpha = L'z';
- wchar_t wblank = L' ';
- wchar_t wdigit = L'1';
- wchar_t wpunct = L',';
- wchar_t wxdigit = L'B';
+ {
+ wchar_t wctype = L'A';
+ wchar_t wspace = L' ';
+ wchar_t wprint = L'^';
+ wchar_t wcntrl = L'';
+ wchar_t wupper = L'A';
+ wchar_t wlower = L'a';
+ wchar_t walpha = L'z';
+ wchar_t wblank = L' ';
+ wchar_t wdigit = L'1';
+ wchar_t wpunct = L',';
+ wchar_t wxdigit = L'B';
- assert(std::iswctype(wctype, std::wctype("alpha")));
- assert(std::iswctype(wdigit, std::wctype("digit")));
- assert(std::iswspace(wspace));
- assert(std::iswprint(wprint));
- assert(std::iswcntrl(wcntrl));
- assert(std::iswupper(wupper));
- assert(std::iswlower(wlower));
- assert(std::iswalpha(walpha));
- assert(std::iswblank(wblank));
- assert(std::iswdigit(wdigit));
- assert(std::iswpunct(wpunct));
- assert(std::iswxdigit(wxdigit));
+ assert(std::iswctype(wctype, std::wctype("alpha")));
+ assert(std::iswctype(wdigit, std::wctype("digit")));
+ assert(std::iswspace(wspace));
+ assert(std::iswprint(wprint));
+ assert(std::iswcntrl(wcntrl));
+ assert(std::iswupper(wupper));
+ assert(std::iswlower(wlower));
+ assert(std::iswalpha(walpha));
+ assert(std::iswblank(wblank));
+ assert(std::iswdigit(wdigit));
+ assert(std::iswpunct(wpunct));
+ assert(std::iswxdigit(wxdigit));
- auto& WF = std::use_facet<std::ctype_byname<wchar_t>>(loc);
- assert(wlower == WF.tolower(wupper));
- assert(wupper == WF.toupper(wlower));
- }
+ auto& WF = std::use_facet<std::ctype_byname<wchar_t>>(loc);
+ assert(wlower == WF.tolower(wupper));
+ assert(wupper == WF.toupper(wlower));
+ }
#endif
- return 0;
+ return 0;
}
-
``````````
</details>
https://github.com/llvm/llvm-project/pull/165428
More information about the libcxx-commits
mailing list