mirror of
https://git.freebsd.org/src.git
synced 2026-01-11 19:57:22 +00:00
uchar.h: add char8_t
A type similar to char16 and char32_t, for compliance with C23. The related type atomic_char8_t is added to stdatomic.h. As char8_t is always unsigned char, I've skipped adding __char8_t. This can be added, too, if desired. Reviewed by: imp Approved by: markj (mentor) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D53952
This commit is contained in:
parent
5da388c633
commit
f0e541118c
2 changed files with 11 additions and 0 deletions
|
|
@ -32,6 +32,11 @@
|
|||
#include <sys/cdefs.h>
|
||||
#include <sys/_types.h>
|
||||
|
||||
#if __ISO_C_VISIBLE >= 2023 && !defined(_CHAR8_T_DECLARED)
|
||||
typedef unsigned char char8_t;
|
||||
#define _CHAR8_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _CHAR16_T_DECLARED
|
||||
typedef __char16_t char16_t;
|
||||
#define _CHAR16_T_DECLARED
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@
|
|||
#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE
|
||||
#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE
|
||||
#endif
|
||||
#if __ISO_C_VISIBLE >= 2023 && defined(__GCC_ATOMIC_CHAR8_T_LOCK_FREE)
|
||||
#define ATOMIC_CHAR8_T_LOCK_FREE __GCC_ATOMIC_CHAR8_T_LOCK_FREE
|
||||
#endif
|
||||
#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
|
||||
#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE
|
||||
#endif
|
||||
|
|
@ -199,6 +202,9 @@ typedef _Atomic(long) atomic_long;
|
|||
typedef _Atomic(unsigned long) atomic_ulong;
|
||||
typedef _Atomic(long long) atomic_llong;
|
||||
typedef _Atomic(unsigned long long) atomic_ullong;
|
||||
#if __ISO_C_VISIBLE >= 2023
|
||||
typedef _Atomic(unsigned char) atomic_char8_t;
|
||||
#endif
|
||||
typedef _Atomic(__char16_t) atomic_char16_t;
|
||||
typedef _Atomic(__char32_t) atomic_char32_t;
|
||||
typedef _Atomic(___wchar_t) atomic_wchar_t;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue