44 lines · c
1// RUN: %clang_cc1 -verify -Wno-c23-extensions %s2 3/* WG14 N3192: Yes4 * Sequential hexdigits5 */6 7// expected-no-diagnostics8 9// Demonstrate that hex digits are already sequential in all targets Clang10// 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 44