[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