[all-commits] [llvm/llvm-project] cd7a7a: Add basic char*_t support for libc (partial WG14 N...

Fabian Keßler via All-commits all-commits at lists.llvm.org
Tue Apr 30 15:09:00 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cd7a7a56fc73c73855036f77a4f69ea90c75c27a
      https://github.com/llvm/llvm-project/commit/cd7a7a56fc73c73855036f77a4f69ea90c75c27a
  Author: Fabian Keßler <fabian_kessler at gmx.de>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M libc/config/baremetal/api.td
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/api.td
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/docs/c23.rst
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/char16_t.h
    A libc/include/llvm-libc-types/char32_t.h
    A libc/include/llvm-libc-types/char8_t.h
    M libc/spec/spec.td
    M libc/spec/stdc.td

  Log Message:
  -----------
  Add basic char*_t support for libc (partial WG14 N2653) (#90360)

This PR implements a part of WG14 N2653:
 - Define C23 char8_t
 - Define C11 char16_t
 - Define C11 char32_t
 
 Missing goals are:
- The type of UTF-8 character literals is changed from unsigned char to
char8_t. (Since UTF-8 character literals already have type unsigned
char, this is not a semantic change).
- New mbrtoc8() and c8rtomb() functions declared in <uchar.h> enable
conversions between multibyte characters and UTF-8.
    - A new ATOMIC_CHAR8_T_LOCK_FREE macro.
    - A new atomic_char8_t typedef name.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list