https://github.com/llvmbot updated https://github.com/llvm/llvm-project/pull/125730
>From 71ee354bab4ad4e3132d079f11e7b9771012442c Mon Sep 17 00:00:00 2001 From: Mark de Wever <ko...@xs4all.nl> Date: Tue, 4 Feb 2025 17:36:31 +0100 Subject: [PATCH] [libc++][TZDB] Fixes %z escaping. (#125399) The previous tested TZDB did not contain %z for the rule letters. The usage of %z in TZDB 2024b revealed a bug in the implementation. The patch fixes it and has been locally tested with TZDB 2024b. Fixes #108957 (cherry picked from commit a27f3b2bb137001735949549354aff89dbf227f4) --- libcxx/src/experimental/time_zone.cpp | 2 +- .../time.zone.members/get_info.sys_time.pass.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libcxx/src/experimental/time_zone.cpp b/libcxx/src/experimental/time_zone.cpp index f7d82a5d4cfc30c..289164ab1203642 100644 --- a/libcxx/src/experimental/time_zone.cpp +++ b/libcxx/src/experimental/time_zone.cpp @@ -668,7 +668,7 @@ __first_rule(seconds __stdoff, const vector<__tz::__rule>& __rules) { __continuation_end, __continuation.__stdoff + __save, chrono::duration_cast<minutes>(__save), - __continuation.__format}, + chrono::__format(__continuation, __continuation.__format, __save)}, true}; } diff --git a/libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp b/libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp index 7f08c64d5e0e715..afd1273421f3985 100644 --- a/libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp +++ b/libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp @@ -157,7 +157,6 @@ static void test_abbrev(std::string_view input, std::string_view expected) { TEST_LIBCPP_REQUIRE(result == expected, TEST_WRITE_CONCATENATED("\nExpected ", expected, "\nActual ", result, '\n')); } -// This format is valid, however is not used in the tzdata.zi. static void percentage_z_format() { test_abbrev( R"( @@ -188,6 +187,12 @@ Z Format 0:45 F %z)", R F 1999 max - Jan 5 0 -1 foo Z Format 0:45 F %z)", "-0015"); + + test_abbrev( + R"( +Z Format -1:2:20 - LMT 1912 Ja 1 1u +-1 - %z)", + "-01"); } int main(int, const char**) { _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits