[libcxx-commits] [libcxx] [libc++][format] Updates to Unicode 17. (PR #172560)

via libcxx-commits libcxx-commits at lists.llvm.org
Tue Dec 16 13:52:27 PST 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Dmitry Atamanov (data-man)

<details>
<summary>Changes</summary>

https://blog.unicode.org/2025/09/unicode-170-release-announcement.html.

---

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


12 Files Affected:

- (modified) libcxx/include/__format/escaped_output_table.h (+41-36) 
- (modified) libcxx/include/__format/extended_grapheme_cluster_table.h (+114-33) 
- (modified) libcxx/include/__format/indic_conjunct_break_table.h (+87-17) 
- (modified) libcxx/include/__format/width_estimation_table.h (+12-11) 
- (modified) libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h (+1498-2479) 
- (modified) libcxx/utils/data/unicode/DerivedCoreProperties.txt (+419-180) 
- (modified) libcxx/utils/data/unicode/DerivedGeneralCategory.txt (+124-79) 
- (modified) libcxx/utils/data/unicode/EastAsianWidth.txt (+72-37) 
- (modified) libcxx/utils/data/unicode/GraphemeBreakProperty.txt (+19-9) 
- (modified) libcxx/utils/data/unicode/GraphemeBreakTest.txt (+706-1031) 
- (modified) libcxx/utils/data/unicode/emoji-data.txt (+48-100) 
- (modified) libcxx/utils/generate_escaped_output_table.py (+1-1) 


``````````diff
diff --git a/libcxx/include/__format/escaped_output_table.h b/libcxx/include/__format/escaped_output_table.h
index 1401b4637d839..5d6236b0c4e50 100644
--- a/libcxx/include/__format/escaped_output_table.h
+++ b/libcxx/include/__format/escaped_output_table.h
@@ -109,7 +109,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[740] = {
     0x00000020 /* 00000000 - 00000020 [   33] */,
     0x001fc021 /* 0000007f - 000000a0 [   34] */,
     0x002b4000 /* 000000ad - 000000ad [    1] */,
@@ -136,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] */,
@@ -220,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] */,
@@ -232,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] */,
@@ -330,7 +330,8 @@ _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] */,
+    0x06b78001 /* 00001ade - 00001adf [    2] */,
+    0x06bb0013 /* 00001aec - 00001aff [   20] */,
     0x06d34000 /* 00001b4d - 00001b4d [    1] */,
     0x06fd0007 /* 00001bf4 - 00001bfb [    8] */,
     0x070e0002 /* 00001c38 - 00001c3a [    3] */,
@@ -360,13 +361,12 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x081c8001 /* 00002072 - 00002073 [    2] */,
     0x0823c000 /* 0000208f - 0000208f [    1] */,
     0x08274002 /* 0000209d - 0000209f [    3] */,
-    0x0830400e /* 000020c1 - 000020cf [   15] */,
+    0x0830800d /* 000020c2 - 000020cf [   14] */,
     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] */,
@@ -398,10 +398,7 @@ _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] */,
+    0x29f74013 /* 0000a7dd - 0000a7f0 [   20] */,
     0x2a0b4002 /* 0000a82d - 0000a82f [    3] */,
     0x2a0e8005 /* 0000a83a - 0000a83f [    6] */,
     0x2a1e0007 /* 0000a878 - 0000a87f [    8] */,
@@ -437,9 +434,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] */,
@@ -510,7 +504,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] */,
@@ -542,7 +536,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] */,
+    0x43b20007 /* 00010ec8 - 00010ecf [    8] */,
+    0x43b64020 /* 00010ed9 - 00010ef9 [   33] */,
     0x43ca0007 /* 00010f28 - 00010f2f [    8] */,
     0x43d68015 /* 00010f5a - 00010f6f [   22] */,
     0x43e28025 /* 00010f8a - 00010faf [   38] */,
@@ -625,7 +620,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] */,
+    0x46c28055 /* 00011b0a - 00011b5f [   86] */,
+    0x46da0057 /* 00011b68 - 00011bbf [   88] */,
     0x46f8800d /* 00011be2 - 00011bef [   14] */,
     0x46fe8005 /* 00011bfa - 00011bff [    6] */,
     0x47024000 /* 00011c09 - 00011c09 [    1] */,
@@ -647,7 +643,9 @@ _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] */,
+    0x477a80f5 /* 00011dea - 00011edf [  246] */,
     0x47be4006 /* 00011ef9 - 00011eff [    7] */,
     0x47c44000 /* 00011f11 - 00011f11 [    1] */,
     0x47cec002 /* 00011f3b - 00011f3d [    3] */,
@@ -677,15 +675,17 @@ _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] */,
+    0x5bfdc008 /* 00016ff7 - 00016fff [    9] */,
     0x63358028 /* 00018cd6 - 00018cfe [   41] */,
-    0x634262e6 /* 00018d09 - 0001afef [ 8935] */,
+    0x6347c060 /* 00018d1f - 00018d7f [   97] */,
+    0x637ce1fc /* 00018df3 - 0001afef [ 8701] */,
     0x6bfd0000 /* 0001aff4 - 0001aff4 [    1] */,
     0x6bff0000 /* 0001affc - 0001affc [    1] */,
     0x6bffc000 /* 0001afff - 0001afff [    1] */,
@@ -700,8 +700,10 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     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] */,
+    0x73b4400e /* 0001ced1 - 0001cedf [   15] */,
+    0x73bc400e /* 0001cef1 - 0001ceff [   15] */,
     0x73cb8001 /* 0001cf2e - 0001cf2f [    2] */,
     0x73d1c008 /* 0001cf47 - 0001cf4f [    9] */,
     0x73f1003b /* 0001cfc4 - 0001cfff [   60] */,
@@ -755,7 +757,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] */,
@@ -813,10 +818,9 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     0x7c924006 /* 0001f249 - 0001f24f [    7] */,
     0x7c94800d /* 0001f252 - 0001f25f [   14] */,
     0x7c998099 /* 0001f266 - 0001f2ff [  154] */,
-    0x7db60003 /* 0001f6d8 - 0001f6db [    4] */,
+    0x7db64002 /* 0001f6d9 - 0001f6db [    3] */,
     0x7dbb4002 /* 0001f6ed - 0001f6ef [    3] */,
     0x7dbf4002 /* 0001f6fd - 0001f6ff [    3] */,
-    0x7dddc003 /* 0001f777 - 0001f77a [    4] */,
     0x7df68005 /* 0001f7da - 0001f7df [    6] */,
     0x7dfb0003 /* 0001f7ec - 0001f7ef [    4] */,
     0x7dfc400e /* 0001f7f1 - 0001f7ff [   15] */,
@@ -826,21 +830,22 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[735] = {
     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] */,
+    0x7ea2c002 /* 0001fa8b - 0001fa8d [    3] */,
+    0x7eb1c000 /* 0001fac7 - 0001fac7 [    1] */,
+    0x7eb24003 /* 0001fac9 - 0001facc [    4] */,
     0x7eb74001 /* 0001fadd - 0001fade [    2] */,
-    0x7eba8005 /* 0001faea - 0001faef [    6] */,
+    0x7ebac003 /* 0001faeb - 0001faee [    4] */,
     0x7ebe4006 /* 0001faf9 - 0001faff [    7] */,
     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] */,
+    0xb3ab8001 /* 0002ceae - 0002ceaf [    2] */,
     0xbaf8400e /* 0002ebe1 - 0002ebef [   15] */,
     0xbb9789a1 /* 0002ee5e - 0002f7ff [ 2466] */,
     0xbe8785e1 /* 0002fa1e - 0002ffff [ 1506] */,
@@ -865,7 +870,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 >= 0x0003347a)
     return true;
 
   ptrdiff_t __i = std::ranges::upper_bound(__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 f76e018df7ae1..d6ed6463eb641 100644
--- a/libcxx/include/__format/extended_grapheme_cluster_table.h
+++ b/libcxx/include/__format/extended_grapheme_cluster_table.h
@@ -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[1582] = {
     0x00000091,
     0x00005005,
     0x00005811,
@@ -354,7 +354,8 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x00d3685a,
     0x00d39892,
     0x00d3f802,
-    0x00d581e2,
+    0x00d582d2,
+    0x00d700b2,
     0x00d80032,
     0x00d8200a,
     0x00d9a092,
@@ -402,7 +403,6 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x010d4813,
     0x0118d013,
     0x01194003,
-    0x011c4003,
     0x011e7803,
     0x011f48a3,
     0x011fc023,
@@ -411,11 +411,49 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x012db003,
     0x012e0003,
     0x012fd833,
-    0x01300053,
-    0x013038b3,
-    0x0130a713,
-    0x01348753,
-    0x013840a3,
+    0x01300043,
+    0x01307003,
+    0x01308803,
+    0x0130a013,
+    0x0130c003,
+    0x0130e803,
+    0x01310003,
+    0x01311013,
+    0x01313003,
+    0x01315003,
+    0x01317013,
+    0x0131c023,
+    0x01320003,
+    0x01321003,
+    0x013240b3,
+    0x0132f813,
+    0x01331803,
+    0x01332813,
+    0x01334003,
+    0x0133d803,
+    0x0133f013,
+    0x01349053,
+    0x0134c803,
+    0x0134d813,
+    0x01350013,
+    0x01353803,
+    0x01355013,
+    0x01358013,
+    0x0135e813,
+    0x01362013,
+    0x01364003,
+    0x01367013,
+    0x01368803,
+    0x01369813,
+    0x01374813,
+    0x01378053,
+    0x0137b833,
+    0x0137e803,
+    0x01381003,
+    0x01382803,
+    0x01384053,
+    0x01387803,
+    0x01389003,
     0x0138a003,
     0x0138b003,
     0x0138e803,
@@ -428,7 +466,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x013a7003,
     0x013a9823,
     0x013ab803,
-    0x013b1843,
+    0x013b1813,
     0x013ca823,
     0x013d0803,
     0x013d8003,
@@ -1322,7 +1360,7 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x08692032,
     0x086b4842,
     0x08755812,
-    0x0877e032,
+    0x0877d052,
     0x087a30a2,
     0x087c1032,
     0x0880000a,
@@ -1456,7 +1494,6 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x08d00892,
     0x08d19852,
     0x08d1c80a,
-    0x08d1d008,
     0x08d1d832,
     0x08d23802,
     0x08d28852,
@@ -1466,6 +1503,12 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x08d450c2,
     0x08d4b80a,
     0x08d4c012,
+    0x08db0002,
+    0x08db080a,
+    0x08db1022,
+    0x08db280a,
+    0x08db3002,
+    0x08db380a,
     0x08e1780a,
     0x08e18062,
     0x08e1c052,
@@ -1543,48 +1586,86 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
     0x0f176032,
     0x0f276032,
     0x0f2f7012,
+    0x0f371802,
+    0x0f373002,
+    0x0f377012,
+    0x0f37a802,
     0x0f468062,
     0x0f4a2062,
-    0x0f8007f3,
-    0x0f8407f3,
-    0x0f886823,
-    0x0f897803,
-    0x0f8b6053,
+    0x0f802003,
+    0x0f816033,
+    0x0f84a0b3,
+    0x0f857813,
+    0x0f860003,
+    0x0f867813,
+    0x0f87b093,
+    0x0f8b8013,
     0x0f8bf013,
     0x0f8c7003,
     0x0f8c8893,
-    0x0f8d6b83,
+    0x0f8d7373,
     0x0f8f3199,
     0x0f9008e3,
     0x0f90d003,
     0x0f917803,
     0x0f919083,
     0x0f91e033,
-    0x0f924ff3,
-    0x0f964ff3,
-    0x0f9a4ff3,
-    0x0f9e4b13,
+    0x0f924963,
+    0x0f9337f3,
+    0x0f9733b3,
+    0x0f9926f3,
+    0x0f9cb013,
+    0x0f9cc823,
+    0x0f9cf523,
+    0x0f9f9823,
+    0x0f9fb833,
     0x0f9fd842,
     0x0fa007f3,
-    0x0fa407f3,
-    0x0fa803d3,
-    0x0faa37f3,
-    0x0fae37f3,
-    0x0fb23093,
-    0x0fb407f3,
-    0x0fbba0b3,
-    0x0fbeaaa3,
+    0x0fa407d3,
+    0x0fa7fbe3,
+    0x0faa4853,
+    0x0faa8173,
+    0x0fab7813,
+    0x0fab9873,
+    0x0fac3803,
+    0x0fac5033,
+    0x0fac8003,
+    0x0faca813,
+    0x0fad2013,
+    0x0fad4003,
+    0x0fad8813,
+    0x0fade003,
+    0x0fae1023,
+    0x0fae8823,
+    0x0faee023,
+    0x0faf0803,
+    0x0faf1803,
+    0x0faf4003,
+    0x0faf7803,
+    0x0faf9803,
+    0x0fafd553,
+    0x0fb40453,
+    0x0fb65873,
+    0x0fb6a903,
+    0x0fb74803,
+    0x0fb75853,
+    0x0fb798c3,
+    0x0fbed253,
     0x0fc06033,
     0x0fc24073,
     0x0fc2d053,
     0x0fc44073,
-    0x0fc57513,
+    0x0fc57013,
+    0x0fc5e033,
+    0x0fc610d3,
+    0x0fc6ca63,
     0x0fc862e3,
     0x0fc9e093,
     0x0fca3ff3,
-    0x0fce3ff3,
-    0x0fd23ff3,
-    0x0fd63b83,
+    0x0fce3b83,
+    0x0fd2c073,
+    0x0fd377f3,
+    0x0fd77113,
     0x0fe007f3,
     0x0fe407f3,
     0x0fe807f3,
diff --git a/libcxx/include/__format/indic_conjunct_break_table.h b/libcxx/include/__format/indic_conjunct_break_table.h
index f48ea625908e9..e55bf1f92264b 100644
--- a/libcxx/include/__format/indic_conjunct_break_table.h
+++ b/libcxx/include/__format/indic_conjunct_break_table.h
@@ -107,7 +107,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[403] = {
+_LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[473] = {
     0x001801bd,
     0x00241819,
     0x002c88b1,
@@ -248,26 +248,39 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[403] = {
     0x007c6829,
     0x007cc88d,
     0x007e3001,
+    0x008000a8,
     0x0081680d,
     0x00819015,
-    0x0081c805,
+    0x0081c802,
+    0x0081d001,
     0x0081e805,
+    0x0081f800,
+    0x00828014,
     0x0082c005,
+    0x0082d00c,
     0x0082f009,
+    0x00830800,
+    0x00832804,
+    0x00837008,
     0x0083880d,
+    0x0083a830,
     0x00841001,
     0x00842805,
     0x00846801,
+    0x00847000,
     0x0084e801,
     0x009ae809,
     0x00b8900d,
     0x00b99009,
     0x00ba9005,
     0x00bb9005,
+    0x00bc00cc,
     0x00bda005,
     0x00bdb819,
     0x00be3001,
-    0x00be4829,
+    0x00be4821,
+    0x00be9002,
+    0x00be9801,
     0x00bee801,
     0x00c05809,
     0x00c07801,
@@ -279,21 +292,32 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[403] = {
     0x00c9c809,
     0x00d0b805,
     0x00d0d801,
+    0x00d100d0,
     0x00d2b001,
     0x00d2c019,
-    0x00d30001,
+    0x00d30002,
     0x00d31001,
     0x00d3281d,
     0x00d39825,
     0x00d3f801,
-    0x00d58079,
+    0x00d580b5,
+    0x00d7002d,
     0x00d8000d,
+    0x00d85804,
+    0x00d89880,
     0x00d9a025,
-    0x00da1009,
+    0x00da1005,
+    0x00da2002,
+    0x00da281c,
     0x00db5821,
     0x00dc0005,
+    0x00dc1874,
     0x00dd100d,
-    0x00dd4015,
+    0x00dd4009,
+    0x00dd5802,
+    0x00dd6005,
+    0x00dd7004,
+    0x00ddd808,
     0x00df3001,
     0x00df4005,
     0x00df6801,
@@ -330,24 +354,35 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[403] = {
     0x054a3829,
     0x054a9801,
     0x054c0009,
+    0x054c4808,
+    0x054c788c,
     0x054d9801,
     0x054db00d,
     0x054de005,
-    0x054e0001,
+    0x054e0002,
+    0x054f0010,
     0x054f2801,
+    0x054f3820,
+    0x054fd010,
     0x05514815,
     0x05518805,
     0x0551a805,
     0x05521801,
     0x05526001,
+    0x0553003c,
+    0x05538808,
+    0x0553d000,
     0x0553e001,
+    0x0553f004,
     0x05558001,
     0x05559009,
     0x0555b805,
     0x0555f005,
     0x05560801,
+    0x05570028,
     0x05576005,
-    0x0557b001,
+    0x0557b002,
+    0x055e0068,
     0x055f2801,
     0x055f4001,
     0x055f6801,
@@ -358,16 +393,20 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[403] = {
     0x080fe801,
     0x08170001,
     0x081bb011,
+    0x08500000,
     0x08500809,
     0x08502805,
     0x0850600d,
+    0x0850800c,
+    0x0850a808,
+    0x0850c870,
     0x0851c009,
-    0x0851f801,
+    0x0851f802,
     0x08572805,
     0x0869200d,
     0x086b4811,
     0x08755805,
-    0x0877e00d,
+    0x0877d015,
     0x087a3029,
     0x087c100d,
     0x08800801,
@@ -379,8 +418,13 @@ _LIB...
[truncated]

``````````

</details>


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


More information about the libcxx-commits mailing list