Skip to content

Commit b34706d

Browse files
AaronBallmancpiaseque
authored andcommitted
[C2y] Add test coverage for WG14 N3192
Clang has always supported sequential hexdigits.
1 parent 3c1040d commit b34706d

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

clang/test/C/C2y/n3192.c

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// RUN: %clang_cc1 -verify -Wno-c23-extensions %s
2+
3+
/* WG14 N3192: Yes
4+
* Sequential hexdigits
5+
*/
6+
7+
// expected-no-diagnostics
8+
9+
// Demonstrate that hex digits are already sequential in all targets Clang
10+
// supports.
11+
12+
#define TEST_VAL(ch) ((ch >= 'A' && ch <= 'F') || (ch >= 'a' && ch <= 'f'))
13+
#define GET_VAL(ch) (((ch >= 'A' && ch <= 'F') ? (ch - 'A') : (ch - 'a')) + 10)
14+
15+
_Static_assert(TEST_VAL('A'));
16+
_Static_assert(TEST_VAL('B'));
17+
_Static_assert(TEST_VAL('C'));
18+
_Static_assert(TEST_VAL('D'));
19+
_Static_assert(TEST_VAL('E'));
20+
_Static_assert(TEST_VAL('F'));
21+
_Static_assert(TEST_VAL('a'));
22+
_Static_assert(TEST_VAL('b'));
23+
_Static_assert(TEST_VAL('c'));
24+
_Static_assert(TEST_VAL('d'));
25+
_Static_assert(TEST_VAL('e'));
26+
_Static_assert(TEST_VAL('f'));
27+
28+
_Static_assert(!TEST_VAL('G'));
29+
_Static_assert(!TEST_VAL('h'));
30+
31+
_Static_assert(GET_VAL('A') == 0xA);
32+
_Static_assert(GET_VAL('B') == 0xB);
33+
_Static_assert(GET_VAL('C') == 0xC);
34+
_Static_assert(GET_VAL('D') == 0xD);
35+
_Static_assert(GET_VAL('E') == 0xE);
36+
_Static_assert(GET_VAL('F') == 0xF);
37+
_Static_assert(GET_VAL('a') == 0xA);
38+
_Static_assert(GET_VAL('b') == 0xB);
39+
_Static_assert(GET_VAL('c') == 0xC);
40+
_Static_assert(GET_VAL('d') == 0xD);
41+
_Static_assert(GET_VAL('e') == 0xE);
42+
_Static_assert(GET_VAL('f') == 0xF);
43+

0 commit comments

Comments
 (0)