`<chrono>`: Handle overflow cases in `[time.format]`
Open
Nobody has claimed this yet.
bug
chrono
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 1.7k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 22
Description
Observed by @statementreply.
There are two specific cases of overflow that we are not currently handling correctly:
> format("{:%Q%q}", nanoseconds::min())
< --9223372036854775808ns
> format("{:%T}", duration<float, ratio<1, 10'000'000>>{179999981568.0f})
< 05:00:00.-016384
We should also audit for other cases of overflow.
Discovered while implementing #12.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the [time.format] implementation and reproduce the two overflow examples shown in the issue. Audit related formatting paths for additional overflow cases, then add coverage and verify that both reported outputs are handled correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100