// RUN: %clang_cc1 -verify -Wno-c23-extensions %s /* WG14 N3192: Yes * Sequential hexdigits */ // expected-no-diagnostics // Demonstrate that hex digits are already sequential in all targets Clang // supports. #define TEST_VAL(ch) ((ch >= 'A' && ch <= 'F') || (ch >= 'a' && ch <= 'f')) #define GET_VAL(ch) (((ch >= 'A' && ch <= 'F') ? (ch - 'A') : (ch - 'a')) + 10) _Static_assert(TEST_VAL('A')); _Static_assert(TEST_VAL('B')); _Static_assert(TEST_VAL('C')); _Static_assert(TEST_VAL('D')); _Static_assert(TEST_VAL('E')); _Static_assert(TEST_VAL('F')); _Static_assert(TEST_VAL('a')); _Static_assert(TEST_VAL('b')); _Static_assert(TEST_VAL('c')); _Static_assert(TEST_VAL('d')); _Static_assert(TEST_VAL('e')); _Static_assert(TEST_VAL('f')); _Static_assert(!TEST_VAL('G')); _Static_assert(!TEST_VAL('h')); _Static_assert(GET_VAL('A') == 0xA); _Static_assert(GET_VAL('B') == 0xB); _Static_assert(GET_VAL('C') == 0xC); _Static_assert(GET_VAL('D') == 0xD); _Static_assert(GET_VAL('E') == 0xE); _Static_assert(GET_VAL('F') == 0xF); _Static_assert(GET_VAL('a') == 0xA); _Static_assert(GET_VAL('b') == 0xB); _Static_assert(GET_VAL('c') == 0xC); _Static_assert(GET_VAL('d') == 0xD); _Static_assert(GET_VAL('e') == 0xE); _Static_assert(GET_VAL('f') == 0xF);