Author: Aaron Ballman
Date: 2024-07-02T07:26:02-04:00
New Revision: 7d0656d734bdc19f2478b394b15378a637cc43ee

URL: 
https://github.com/llvm/llvm-project/commit/7d0656d734bdc19f2478b394b15378a637cc43ee
DIFF: 
https://github.com/llvm/llvm-project/commit/7d0656d734bdc19f2478b394b15378a637cc43ee.diff

LOG: [C2y] Add test coverage for WG14 N3192

Clang has always supported sequential hexdigits.

Added: 
    clang/test/C/C2y/n3192.c

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/clang/test/C/C2y/n3192.c b/clang/test/C/C2y/n3192.c
new file mode 100644
index 0000000000000..b6f61d5a883dd
--- /dev/null
+++ b/clang/test/C/C2y/n3192.c
@@ -0,0 +1,43 @@
+// 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);
+


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to