[libcxx] [llvm] Finish supporting Unicode 18 (PR #199111)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 15 05:07:41 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Charlie Lin (clin1234)

<details>
<summary>Changes</summary>

This PR updates other Unicode tables started by #<!-- -->198255. In particular, Unicode names to codepoints mappings, case foldings, and which codepoints to escape in identifiers.

---

Patch is 1.05 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/199111.diff


22 Files Affected:

- (modified) libcxx/include/__format/escaped_output_table.h (+73-66) 
- (modified) libcxx/include/__format/extended_grapheme_cluster_table.h (+124-37) 
- (modified) libcxx/include/__format/indic_conjunct_break_table.h (+100-20) 
- (modified) libcxx/include/__format/unicode.h (+48-63) 
- (modified) libcxx/include/__format/width_estimation_table.h (+18-14) 
- (modified) libcxx/test/libcxx/utilities/format/format.string/format.string.std/escaped_output.pass.cpp (+11-9) 
- (modified) libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h (+2570-3282) 
- (modified) libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.pass.cpp (+7-7) 
- (modified) libcxx/utils/data/unicode/DerivedCoreProperties.txt (+765-270) 
- (modified) libcxx/utils/data/unicode/DerivedGeneralCategory.txt (+230-127) 
- (modified) libcxx/utils/data/unicode/EastAsianWidth.txt (+119-51) 
- (modified) libcxx/utils/data/unicode/GraphemeBreakProperty.txt (+27-11) 
- (modified) libcxx/utils/data/unicode/GraphemeBreakTest.txt (+860-1098) 
- (modified) libcxx/utils/data/unicode/emoji-data.txt (+69-104) 
- (modified) libcxx/utils/generate_escaped_output_table.py (+6-6) 
- (modified) libcxx/utils/generate_extended_grapheme_cluster_table.py (+5-5) 
- (modified) libcxx/utils/generate_extended_grapheme_cluster_test.py (+6-4) 
- (modified) libcxx/utils/generate_indic_conjunct_break_table.py (+2-2) 
- (modified) libcxx/utils/generate_width_estimation_table.py (+1-1) 
- (modified) llvm/lib/Support/UnicodeCaseFold.cpp (+63-8) 
- (modified) llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp (+3-3) 
- (modified) llvm/utils/unicode-case-fold.py (+28-23) 


``````````diff
diff --git a/libcxx/include/__format/escaped_output_table.h b/libcxx/include/__format/escaped_output_table.h
index 7b6a03162c490..7ba40e98400bb 100644
--- a/libcxx/include/__format/escaped_output_table.h
+++ b/libcxx/include/__format/escaped_output_table.h
@@ -98,7 +98,7 @@ namespace __escaped_output_table {
 /// - Unassigned.
 ///
 /// The data is generated from
-/// - https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedGeneralCategory.txt
+/// - https://www.unicode.org/Public/18.0.0/ucd/extracted/DerivedGeneralCategory.txt
 ///
 /// The table is similar to the table
 ///  __extended_grapheme_custer_property_boundary::__entries
@@ -110,7 +110,7 @@ namespace __escaped_output_table {
 /// - bits [14, 31] The lower bound code point of the range. The upper bound of
 ///   the range is lower bound + size. Note the code expects code units the fit
 ///   into 18 bits, instead of the 21 bits needed for the full Unicode range.
-_LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
+_LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[742] = {
     0x00000020 /* 00000000 - 00000020 [   33] */,
     0x001fc021 /* 0000007f - 000000a0 [   34] */,
     0x002b4000 /* 000000ad - 000000ad [    1] */,
@@ -120,10 +120,9 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x00e34000 /* 0000038d - 0000038d [    1] */,
     0x00e88000 /* 000003a2 - 000003a2 [    1] */,
     0x014c0000 /* 00000530 - 00000530 [    1] */,
-    0x0155c001 /* 00000557 - 00000558 [    2] */,
-    0x0162c001 /* 0000058b - 0000058c [    2] */,
+    0x0155c000 /* 00000557 - 00000557 [    1] */,
     0x01640000 /* 00000590 - 00000590 [    1] */,
-    0x01720007 /* 000005c8 - 000005cf [    8] */,
+    0x01728005 /* 000005ca - 000005cf [    6] */,
     0x017ac003 /* 000005eb - 000005ee [    4] */,
     0x017d4010 /* 000005f5 - 00000605 [   17] */,
     0x01870000 /* 0000061c - 0000061c [    1] */,
@@ -137,7 +136,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x02170001 /* 0000085c - 0000085d [    2] */,
     0x0217c000 /* 0000085f - 0000085f [    1] */,
     0x021ac004 /* 0000086b - 0000086f [    5] */,
-    0x0223c007 /* 0000088f - 00000896 [    8] */,
+    0x02240006 /* 00000890 - 00000896 [    7] */,
     0x02388000 /* 000008e2 - 000008e2 [    1] */,
     0x02610000 /* 00000984 - 00000984 [    1] */,
     0x02634001 /* 0000098d - 0000098e [    2] */,
@@ -192,7 +191,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x02ce8001 /* 00000b3a - 00000b3b [    2] */,
     0x02d14001 /* 00000b45 - 00000b46 [    2] */,
     0x02d24001 /* 00000b49 - 00000b4a [    2] */,
-    0x02d38006 /* 00000b4e - 00000b54 [    7] */,
+    0x02d38004 /* 00000b4e - 00000b52 [    5] */,
     0x02d60003 /* 00000b58 - 00000b5b [    4] */,
     0x02d78000 /* 00000b5e - 00000b5e [    1] */,
     0x02d90001 /* 00000b64 - 00000b65 [    2] */,
@@ -221,7 +220,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x03124000 /* 00000c49 - 00000c49 [    1] */,
     0x03138006 /* 00000c4e - 00000c54 [    7] */,
     0x0315c000 /* 00000c57 - 00000c57 [    1] */,
-    0x0316c001 /* 00000c5b - 00000c5c [    2] */,
+    0x0316c000 /* 00000c5b - 00000c5b [    1] */,
     0x03178001 /* 00000c5e - 00000c5f [    2] */,
     0x03190001 /* 00000c64 - 00000c65 [    2] */,
     0x031c0006 /* 00000c70 - 00000c76 [    7] */,
@@ -233,7 +232,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x03314000 /* 00000cc5 - 00000cc5 [    1] */,
     0x03324000 /* 00000cc9 - 00000cc9 [    1] */,
     0x03338006 /* 00000cce - 00000cd4 [    7] */,
-    0x0335c005 /* 00000cd7 - 00000cdc [    6] */,
+    0x0335c004 /* 00000cd7 - 00000cdb [    5] */,
     0x0337c000 /* 00000cdf - 00000cdf [    1] */,
     0x03390001 /* 00000ce4 - 00000ce5 [    2] */,
     0x033c0000 /* 00000cf0 - 00000cf0 [    1] */,
@@ -331,7 +330,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x06a28005 /* 00001a8a - 00001a8f [    6] */,
     0x06a68005 /* 00001a9a - 00001a9f [    6] */,
     0x06ab8001 /* 00001aae - 00001aaf [    2] */,
-    0x06b3c030 /* 00001acf - 00001aff [   49] */,
+    0x06bc400e /* 00001af1 - 00001aff [   15] */,
     0x06d34000 /* 00001b4d - 00001b4d [    1] */,
     0x06fd0007 /* 00001bf4 - 00001bfb [    8] */,
     0x070e0002 /* 00001c38 - 00001c3a [    3] */,
@@ -359,15 +358,12 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x080a0007 /* 00002028 - 0000202f [    8] */,
     0x0817c010 /* 0000205f - 0000206f [   17] */,
     0x081c8001 /* 00002072 - 00002073 [    2] */,
-    0x0823c000 /* 0000208f - 0000208f [    1] */,
-    0x08274002 /* 0000209d - 0000209f [    3] */,
-    0x0830400e /* 000020c1 - 000020cf [   15] */,
+    0x0831400a /* 000020c5 - 000020cf [   11] */,
     0x083c400e /* 000020f1 - 000020ff [   15] */,
     0x08630003 /* 0000218c - 0000218f [    4] */,
     0x090a8015 /* 0000242a - 0000243f [   22] */,
     0x0912c014 /* 0000244b - 0000245f [   21] */,
     0x0add0001 /* 00002b74 - 00002b75 [    2] */,
-    0x0ae58000 /* 00002b96 - 00002b96 [    1] */,
     0x0b3d0004 /* 00002cf4 - 00002cf8 [    5] */,
     0x0b498000 /* 00002d26 - 00002d26 [    1] */,
     0x0b4a0004 /* 00002d28 - 00002d2c [    5] */,
@@ -383,7 +379,8 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x0b73c000 /* 00002dcf - 00002dcf [    1] */,
     0x0b75c000 /* 00002dd7 - 00002dd7 [    1] */,
     0x0b77c000 /* 00002ddf - 00002ddf [    1] */,
-    0x0b978021 /* 00002e5e - 00002e7f [   34] */,
+    0x0b978001 /* 00002e5e - 00002e5f [    2] */,
+    0x0b99001b /* 00002e64 - 00002e7f [   28] */,
     0x0ba68000 /* 00002e9a - 00002e9a [    1] */,
     0x0bbd000b /* 00002ef4 - 00002eff [   12] */,
     0x0bf58019 /* 00002fd6 - 00002fef [   26] */,
@@ -399,10 +396,8 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x2931c008 /* 0000a4c7 - 0000a4cf [    9] */,
     0x298b0013 /* 0000a62c - 0000a63f [   20] */,
     0x29be0007 /* 0000a6f8 - 0000a6ff [    8] */,
-    0x29f38001 /* 0000a7ce - 0000a7cf [    2] */,
-    0x29f48000 /* 0000a7d2 - 0000a7d2 [    1] */,
-    0x29f50000 /* 0000a7d4 - 0000a7d4 [    1] */,
-    0x29f74014 /* 0000a7dd - 0000a7f1 [   21] */,
+    0x29f78003 /* 0000a7de - 0000a7e1 [    4] */,
+    0x29f8c00d /* 0000a7e3 - 0000a7f0 [   14] */,
     0x2a0b4002 /* 0000a82d - 0000a82f [    3] */,
     0x2a0e8005 /* 0000a83a - 0000a83f [    6] */,
     0x2a1e0007 /* 0000a878 - 0000a87f [    8] */,
@@ -423,7 +418,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x2ac5c008 /* 0000ab17 - 0000ab1f [    9] */,
     0x2ac9c000 /* 0000ab27 - 0000ab27 [    1] */,
     0x2acbc000 /* 0000ab2f - 0000ab2f [    1] */,
-    0x2adb0003 /* 0000ab6c - 0000ab6f [    4] */,
+    0x2adb8001 /* 0000ab6e - 0000ab6f [    2] */,
     0x2afb8001 /* 0000abee - 0000abef [    2] */,
     0x2afe8005 /* 0000abfa - 0000abff [    6] */,
     0x35e9000b /* 0000d7a4 - 0000d7af [   12] */,
@@ -438,9 +433,6 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x3ecfc000 /* 0000fb3f - 0000fb3f [    1] */,
     0x3ed08000 /* 0000fb42 - 0000fb42 [    1] */,
     0x3ed14000 /* 0000fb45 - 0000fb45 [    1] */,
-    0x3ef0c00f /* 0000fbc3 - 0000fbd2 [   16] */,
-    0x3f640001 /* 0000fd90 - 0000fd91 [    2] */,
-    0x3f720006 /* 0000fdc8 - 0000fdce [    7] */,
     0x3f74001f /* 0000fdd0 - 0000fdef [   32] */,
     0x3f868005 /* 0000fe1a - 0000fe1f [    6] */,
     0x3f94c000 /* 0000fe53 - 0000fe53 [    1] */,
@@ -498,7 +490,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x41da0017 /* 00010768 - 0001077f [   24] */,
     0x41e18000 /* 00010786 - 00010786 [    1] */,
     0x41ec4000 /* 000107b1 - 000107b1 [    1] */,
-    0x41eec044 /* 000107bb - 000107ff [   69] */,
+    0x41f0003f /* 000107c0 - 000107ff [   64] */,
     0x42018001 /* 00010806 - 00010807 [    2] */,
     0x42024000 /* 00010809 - 00010809 [    1] */,
     0x420d8000 /* 00010836 - 00010836 [    1] */,
@@ -511,7 +503,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x423d8004 /* 000108f6 - 000108fa [    5] */,
     0x42470002 /* 0001091c - 0001091e [    3] */,
     0x424e8004 /* 0001093a - 0001093e [    5] */,
-    0x4250003f /* 00010940 - 0001097f [   64] */,
+    0x42568025 /* 0001095a - 0001097f [   38] */,
     0x426e0003 /* 000109b8 - 000109bb [    4] */,
     0x42740001 /* 000109d0 - 000109d1 [    2] */,
     0x42810000 /* 00010a04 - 00010a04 [    1] */,
@@ -543,7 +535,8 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x43aa8000 /* 00010eaa - 00010eaa [    1] */,
     0x43ab8001 /* 00010eae - 00010eaf [    2] */,
     0x43ac800f /* 00010eb2 - 00010ec1 [   16] */,
-    0x43b14036 /* 00010ec5 - 00010efb [   55] */,
+    0x43b20000 /* 00010ec8 - 00010ec8 [    1] */,
+    0x43bbc000 /* 00010eef - 00010eef [    1] */,
     0x43ca0007 /* 00010f28 - 00010f2f [    8] */,
     0x43d68015 /* 00010f5a - 00010f6f [   22] */,
     0x43e28025 /* 00010f8a - 00010faf [   38] */,
@@ -626,7 +619,8 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x46920007 /* 00011a48 - 00011a4f [    8] */,
     0x46a8c00c /* 00011aa3 - 00011aaf [   13] */,
     0x46be4006 /* 00011af9 - 00011aff [    7] */,
-    0x46c280b5 /* 00011b0a - 00011bbf [  182] */,
+    0x46c2c054 /* 00011b0b - 00011b5f [   85] */,
+    0x46da0057 /* 00011b68 - 00011bbf [   88] */,
     0x46f8800d /* 00011be2 - 00011bef [   14] */,
     0x46fe8005 /* 00011bfa - 00011bff [    6] */,
     0x47024000 /* 00011c09 - 00011c09 [    1] */,
@@ -648,7 +642,10 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x4763c000 /* 00011d8f - 00011d8f [    1] */,
     0x47648000 /* 00011d92 - 00011d92 [    1] */,
     0x47664006 /* 00011d99 - 00011d9f [    7] */,
-    0x476a8135 /* 00011daa - 00011edf [  310] */,
+    0x476a8005 /* 00011daa - 00011daf [    6] */,
+    0x47770003 /* 00011ddc - 00011ddf [    4] */,
+    0x477a8005 /* 00011dea - 00011def [    6] */,
+    0x477c80ed /* 00011df2 - 00011edf [  238] */,
     0x47be4006 /* 00011ef9 - 00011eff [    7] */,
     0x47c44000 /* 00011f11 - 00011f11 [    1] */,
     0x47cec002 /* 00011f3b - 00011f3d [    3] */,
@@ -656,9 +653,8 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x47ec400e /* 00011fb1 - 00011fbf [   15] */,
     0x47fc800c /* 00011ff2 - 00011ffe [   13] */,
     0x48e68065 /* 0001239a - 000123ff [  102] */,
-    0x491bc000 /* 0001246f - 0001246f [    1] */,
-    0x491d400a /* 00012475 - 0001247f [   11] */,
-    0x49510a4b /* 00012544 - 00012f8f [ 2636] */,
+    0x4951000b /* 00012544 - 0001254f [   12] */,
+    0x49a1c908 /* 00012687 - 00012f8f [ 2313] */,
     0x4bfcc00c /* 00012ff3 - 00012fff [   13] */,
     0x4d0c000f /* 00013430 - 0001343f [   16] */,
     0x4d158009 /* 00013456 - 0001345f [   10] */,
@@ -678,39 +674,45 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x5ade0004 /* 00016b78 - 00016b7c [    5] */,
     0x5ae401af /* 00016b90 - 00016d3f [  432] */,
     0x5b5e80c5 /* 00016d7a - 00016e3f [  198] */,
-    0x5ba6c064 /* 00016e9b - 00016eff [  101] */,
+    0x5ba6c004 /* 00016e9b - 00016e9f [    5] */,
+    0x5bae4001 /* 00016eb9 - 00016eba [    2] */,
+    0x5bb5002b /* 00016ed4 - 00016eff [   44] */,
     0x5bd2c003 /* 00016f4b - 00016f4e [    4] */,
     0x5be20006 /* 00016f88 - 00016f8e [    7] */,
     0x5be8003f /* 00016fa0 - 00016fdf [   64] */,
     0x5bf9400a /* 00016fe5 - 00016fef [   11] */,
-    0x5bfc800d /* 00016ff2 - 00016fff [   14] */,
-    0x61fe0007 /* 000187f8 - 000187ff [    8] */,
-    0x63358028 /* 00018cd6 - 00018cfe [   41] */,
-    0x634262e6 /* 00018d09 - 0001afef [ 8935] */,
+    0x5bfdc008 /* 00016ff7 - 00016fff [    9] */,
+    0x6336c023 /* 00018cdb - 00018cfe [   36] */,
+    0x6348405e /* 00018d21 - 00018d7f [   95] */,
+    0x637cc00c /* 00018df3 - 00018dff [   13] */,
+    0x6464800d /* 00019192 - 0001919f [   14] */,
+    0x6474de1c /* 000191d3 - 0001afef [ 7709] */,
     0x6bfd0000 /* 0001aff4 - 0001aff4 [    1] */,
     0x6bff0000 /* 0001affc - 0001affc [    1] */,
     0x6bffc000 /* 0001afff - 0001afff [    1] */,
-    0x6c48c00e /* 0001b123 - 0001b131 [   15] */,
+    0x6c4a4008 /* 0001b129 - 0001b131 [    9] */,
     0x6c4cc01c /* 0001b133 - 0001b14f [   29] */,
     0x6c54c001 /* 0001b153 - 0001b154 [    2] */,
     0x6c55800d /* 0001b156 - 0001b163 [   14] */,
-    0x6c5a0007 /* 0001b168 - 0001b16f [    8] */,
+    0x6c5a4006 /* 0001b169 - 0001b16f [    7] */,
     0x6cbf0903 /* 0001b2fc - 0001bbff [ 2308] */,
     0x6f1ac004 /* 0001bc6b - 0001bc6f [    5] */,
     0x6f1f4002 /* 0001bc7d - 0001bc7f [    3] */,
     0x6f224006 /* 0001bc89 - 0001bc8f [    7] */,
     0x6f268001 /* 0001bc9a - 0001bc9b [    2] */,
     0x6f280f5f /* 0001bca0 - 0001cbff [ 3936] */,
-    0x733e8005 /* 0001ccfa - 0001ccff [    6] */,
-    0x73ad004b /* 0001ceb4 - 0001ceff [   76] */,
+    0x733f4002 /* 0001ccfd - 0001ccff [    3] */,
+    0x73ad0005 /* 0001ceb4 - 0001ceb9 [    6] */,
+    0x73b44000 /* 0001ced1 - 0001ced1 [    1] */,
+    0x73b54007 /* 0001ced5 - 0001cedc [    8] */,
+    0x73bf8001 /* 0001cefe - 0001ceff [    2] */,
     0x73cb8001 /* 0001cf2e - 0001cf2f [    2] */,
     0x73d1c008 /* 0001cf47 - 0001cf4f [    9] */,
     0x73f1003b /* 0001cfc4 - 0001cfff [   60] */,
     0x743d8009 /* 0001d0f6 - 0001d0ff [   10] */,
-    0x7449c001 /* 0001d127 - 0001d128 [    2] */,
     0x745cc007 /* 0001d173 - 0001d17a [    8] */,
-    0x747ac014 /* 0001d1eb - 0001d1ff [   21] */,
-    0x74918079 /* 0001d246 - 0001d2bf [  122] */,
+    0x74918009 /* 0001d246 - 0001d24f [   10] */,
+    0x74a0803d /* 0001d282 - 0001d2bf [   62] */,
     0x74b5000b /* 0001d2d4 - 0001d2df [   12] */,
     0x74bd000b /* 0001d2f4 - 0001d2ff [   12] */,
     0x74d5c008 /* 0001d357 - 0001d35f [    9] */,
@@ -733,13 +735,14 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x75514000 /* 0001d545 - 0001d545 [    1] */,
     0x7551c002 /* 0001d547 - 0001d549 [    3] */,
     0x75544000 /* 0001d551 - 0001d551 [    1] */,
-    0x75a98001 /* 0001d6a6 - 0001d6a7 [    2] */,
+    0x75a9c000 /* 0001d6a7 - 0001d6a7 [    1] */,
     0x75f30001 /* 0001d7cc - 0001d7cd [    2] */,
     0x76a3000e /* 0001da8c - 0001da9a [   15] */,
     0x76a80000 /* 0001daa0 - 0001daa0 [    1] */,
-    0x76ac044f /* 0001dab0 - 0001deff [ 1104] */,
-    0x77c7c005 /* 0001df1f - 0001df24 [    6] */,
-    0x77cac0d4 /* 0001df2b - 0001dfff [  213] */,
+    0x76ac004f /* 0001dab0 - 0001daff [   80] */,
+    0x76c743e2 /* 0001db1d - 0001deff [  995] */,
+    0x77e0800d /* 0001df82 - 0001df8f [   14] */,
+    0x77e5c035 /* 0001df97 - 0001dfcc [   54] */,
     0x7801c000 /* 0001e007 - 0001e007 [    1] */,
     0x78064001 /* 0001e019 - 0001e01a [    2] */,
     0x78088000 /* 0001e022 - 0001e022 [    1] */,
@@ -756,7 +759,10 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x78c001cf /* 0001e300 - 0001e4cf [  464] */,
     0x793e80d5 /* 0001e4fa - 0001e5cf [  214] */,
     0x797ec003 /* 0001e5fb - 0001e5fe [    4] */,
-    0x798001df /* 0001e600 - 0001e7df [  480] */,
+    0x798000bf /* 0001e600 - 0001e6bf [  192] */,
+    0x79b7c000 /* 0001e6df - 0001e6df [    1] */,
+    0x79bd8007 /* 0001e6f6 - 0001e6fd [    8] */,
+    0x79c000df /* 0001e700 - 0001e7df [  224] */,
     0x79f9c000 /* 0001e7e7 - 0001e7e7 [    1] */,
     0x79fb0000 /* 0001e7ec - 0001e7ec [    1] */,
     0x79fbc000 /* 0001e7ef - 0001e7ef [    1] */,
@@ -808,44 +814,45 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x7c300000 /* 0001f0c0 - 0001f0c0 [    1] */,
     0x7c340000 /* 0001f0d0 - 0001f0d0 [    1] */,
     0x7c3d8009 /* 0001f0f6 - 0001f0ff [   10] */,
-    0x7c6b8037 /* 0001f1ae - 0001f1e5 [   56] */,
+    0x7c6bc036 /* 0001f1af - 0001f1e5 [   55] */,
     0x7c80c00c /* 0001f203 - 0001f20f [   13] */,
     0x7c8f0003 /* 0001f23c - 0001f23f [    4] */,
     0x7c924006 /* 0001f249 - 0001f24f [    7] */,
     0x7c94800d /* 0001f252 - 0001f25f [   14] */,
     0x7c998099 /* 0001f266 - 0001f2ff [  154] */,
-    0x7db60003 /* 0001f6d8 - 0001f6db [    4] */,
+    0x7db68001 /* 0001f6da - 0001f6db [    2] */,
     0x7dbb4002 /* 0001f6ed - 0001f6ef [    3] */,
     0x7dbf4002 /* 0001f6fd - 0001f6ff [    3] */,
-    0x7dddc003 /* 0001f777 - 0001f77a [    4] */,
-    0x7df68005 /* 0001f7da - 0001f7df [    6] */,
+    0x7df70003 /* 0001f7dc - 0001f7df [    4] */,
     0x7dfb0003 /* 0001f7ec - 0001f7ef [    4] */,
-    0x7dfc400e /* 0001f7f1 - 0001f7ff [   15] */,
     0x7e030003 /* 0001f80c - 0001f80f [    4] */,
     0x7e120007 /* 0001f848 - 0001f84f [    8] */,
     0x7e168005 /* 0001f85a - 0001f85f [    6] */,
     0x7e220007 /* 0001f888 - 0001f88f [    8] */,
     0x7e2b8001 /* 0001f8ae - 0001f8af [    2] */,
     0x7e2f0003 /* 0001f8bc - 0001f8bf [    4] */,
-    0x7e30803d /* 0001f8c2 - 0001f8ff [   62] */,
-    0x7e95000b /* 0001fa54 - 0001fa5f [   12] */,
+    0x7e30800d /* 0001f8c2 - 0001f8cf [   14] */,
+    0x7e364026 /* 0001f8d9 - 0001f8ff [   39] */,
+    0x7e960007 /* 0001fa58 - 0001fa5f [    8] */,
     0x7e9b8001 /* 0001fa6e - 0001fa6f [    2] */,
     0x7e9f4002 /* 0001fa7d - 0001fa7f [    3] */,
-    0x7ea28004 /* 0001fa8a - 0001fa8e [    5] */,
-    0x7eb1c006 /* 0001fac7 - 0001facd [    7] */,
-    0x7eb74001 /* 0001fadd - 0001fade [    2] */,
-    0x7eba8005 /* 0001faea - 0001faef [    6] */,
-    0x7ebe4006 /* 0001faf9 - 0001faff [    7] */,
+    0x7eb1c000 /* 0001fac7 - 0001fac7 [    1] */,
+    0x7eb24002 /* 0001fac9 - 0001facb [    3] */,
+    0x7eb78000 /* 0001fade - 0001fade [    1] */,
+    0x7ebb0002 /* 0001faec - 0001faee [    3] */,
+    0x7ebec004 /* 0001fafb - 0001faff [    5] */,
     0x7ee4c000 /* 0001fb93 - 0001fb93 [    1] */,
-    0x7efe8405 /* 0001fbfa - 0001ffff [ 1030] */,
+    0x7efec404 /* 0001fbfb - 0001ffff [ 1029] */,
     0xa9b8001f /* 0002a6e0 - 0002a6ff [   32] */,
-    0xadce8005 /* 0002b73a - 0002b73f [    6] */,
-    0xae078001 /* 0002b81e - 0002b81f [    2] */,
-    0xb3a8800d /* 0002cea2 - 0002ceaf [   14] */,
+    0xae07c000 /* 0002b81f - 0002b81f [    1] */,
+    0xb3ab8001 /* 0002ceae - 0002ceaf [    2] */,
     0xbaf8400e /* 0002ebe1 - 0002ebef [   15] */,
     0xbb9789a1 /* 0002ee5e - 0002f7ff [ 2466] */,
     0xbe8785e1 /* 0002fa1e - 0002ffff [ 1506] */,
-    0xc4d2c004 /* 0003134b - 0003134f [    5] */};
+    0xc4d2c004 /* 0003134b - 0003134f [    5] */,
+    0xcd1ebfff /* 0003347a - 00037479 [16384] */,
+    0xdd1ebfff /* 0003747a - 0003b479 [16384] */,
+    0xed1e9b85 /* 0003b47a - 0003cfff [ 7046] */};
 
 /// Returns whether the code unit needs to be escaped.
 ///
@@ -866,7 +873,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
      return false;
 
   // The entries at the end.
-  if (__code_point >= 0x000323b0)
+  if (__code_point >= 0x0003fc40)
     return true;
 
   ptrdiff_t __i = std::upper_bound(std::begin(__entries), std::end(__entries), (__code_point << 14) | 0x3fffu) - __entries;
diff --git a/libcxx/include/__format/extended_grapheme_cluster_table.h b/libcxx/include/__format/extended_grapheme_cluster_table.h
index 6da07862d41e6..b805f738c359b 100644
--- a/libcxx/include/__format/extended_grapheme_cluster_table.h
+++ b/libcxx/include/__format/extended_grapheme_cluster_table.h
@@ -107,8 +107,8 @@ enum class __property : uint8_t {
 /// The entries of the extended grapheme cluster bondary property table.
 ///
 /// The data is generated from
-/// - https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt
-/// - https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt
+/// - https://www.unicode.org/Public/18.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
+/// - https://www.unicode.org/Public/18.0.0/ucd/emoji/emoji-data.txt
 ///
 /// The data has 3 values
 /// - bits [0, 3] The property. One of the values generated from the datafiles
@@ -125,7 +125,7 @@ enum class __property : uint8_t {
 /// following benchmark.
 /// libcxx/benchmarks/std_format_spec_string_unicode.bench.cpp
 // clang-format off
-_LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
+_LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1588] = {
     0x00000091,
     0x00005005,
     0x00005811,
@@ -141,7 +141,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/199111


More information about the llvm-commits mailing list