[all-commits] [llvm/llvm-project] 7e7013: [libc++][cuchar] Declare std::c8rtomb and std::mbr...

Tom Honermann via All-commits all-commits at lists.llvm.org
Sat Sep 10 18:11:21 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7e7013c5d4b1b3996c8dba668c5a94bb33b2999b
      https://github.com/llvm/llvm-project/commit/7e7013c5d4b1b3996c8dba668c5a94bb33b2999b
  Author: Tom Honermann <tom at honermann.net>
  Date:   2022-09-10 (Sat, 10 Sep 2022)

  Changed paths:
    M libcxx/docs/ReleaseNotes.rst
    M libcxx/docs/Status/Cxx20.rst
    M libcxx/docs/Status/Cxx20Papers.csv
    M libcxx/include/__config
    M libcxx/include/cuchar
    M libcxx/include/uchar.h
    M libcxx/test/std/depr/depr.c.headers/uchar_h.compile.pass.cpp
    M libcxx/test/std/strings/c.strings/cuchar.compile.pass.cpp
    A libcxx/test/std/strings/c.strings/no_c8rtomb_mbrtoc8.verify.cpp
    M libcxx/test/support/test_macros.h

  Log Message:
  -----------
  [libc++][cuchar] Declare std::c8rtomb and std::mbrtoc8 in <cuchar> if available.

This change implements the C library dependent portions of P0482R6
(char8_t: A type for UTF-8 characters and strings (Revision 6)) by
declaring std::c8rtomb() and std::mbrtoc8() in the <cuchar> header
when implementations are provided by the C library as specified by
WG14 N2653 (char8_t: A type for UTF-8 characters and strings
(Revision 1)) as adopted for C23.

A _LIBCPP_HAS_NO_C8RTOMB_MBRTOC8 macro is defined by the libc++ __config
header unless it is known that the C library provides these functions
in the current compilation mode. This macro is used for testing purposes
and may be of use to libc++ users. At present, the only C library known
to implement these functions is GNU libc as of its 2.36 release.

Reviewed By: ldionne

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




More information about the All-commits mailing list