blob: e5e809497715e0332d9ba969bfa05ac61f106938 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
/* Test C23 UTF-8 characters. Test valid usages. */
/* { dg-do compile } */
/* { dg-options "-std=c23 -pedantic-errors" } */
unsigned char a = u8'a';
_Static_assert (u8'a' == 97);
unsigned char b = u8'\0';
_Static_assert (u8'\0' == 0);
unsigned char c = u8'\xff';
_Static_assert (u8'\xff' == 255);
unsigned char d = u8'\377';
_Static_assert (u8'\377' == 255);
_Static_assert (sizeof (u8'a') == 1);
_Static_assert (sizeof (u8'\0') == 1);
_Static_assert (sizeof (u8'\xff') == 1);
_Static_assert (sizeof (u8'\377') == 1);
_Static_assert (_Generic (u8'a', unsigned char: 1, default: 2) == 1);
_Static_assert (_Generic (u8'\0', unsigned char: 1, default: 2) == 1);
_Static_assert (_Generic (u8'\xff', unsigned char: 1, default: 2) == 1);
_Static_assert (_Generic (u8'\377', unsigned char: 1, default: 2) == 1);
#if u8'\0' - 1 < 0
#error "UTF-8 constants not unsigned in preprocessor"
#endif
|