Landing: f7cde200320e

Project / Subsystem

gcc / libstdc++

Date

2026-06-30

Author

Tomasz Kamiński

Commit

f7cde200320e0800e4fcc5cea399e9faef50f8d4

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
libstdc++
patch_id
commit_hash
f7cde200320e0800e4fcc5cea399e9faef50f8d4
source_type
github
headline
libstdc++: Correctly cascade wall-time saves in lazy timezone expansion
tldr
Fixes timezone calculations for zones with wall-time rules by properly accounting for accumulated time savings from preceding rules.
author
Tomasz Kamiński
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • libstdc++
  • timezone
  • dst
  • bugfix
discussion_id_link
bugzilla_pr
date
2026-06-30T00:00:00.000Z

This change corrects an issue in libstdc++‘s timezone database where wall-time saves were not being correctly cascaded when seeding system information. Previously, each rule was evaluated in isolation, ignoring the accumulated offset from prior rules in the same year. This led to incorrect timezone offsets for zones like Europe/Paris around 1945, where the interaction between rules determines the actual wall-time offset. The fix enhances the lookup algorithm to consider three rule transitions (current, previous, and next) to accurately adjust start times and determine the active rule, aligning behavior with zic and libc.