summaryrefslogtreecommitdiff
path: root/libc/src/time/strftime_l.cpp
AgeCommit message (Collapse)Author
2025-11-11[libc] Refactor strftime internals to handle size_t return values (#166901)Marcell Leleszi
Now that https://github.com/llvm/llvm-project/pull/166517 has landed and [Writer](https://github.com/llvm/llvm-project/blob/main/libc/src/stdio/printf_core/writer.h#L130) has been refactored to track bytes written as size_t, strftime can be refactored as well to handle size_t return values. Can't think of a proper way to test this without creating a 2GB+ string, but existing tests cover most cases.
2025-10-30[libc] Fix off by one error in strftime (#165711)Marcell Leleszi
This patch fixes a bug in strftime's return value when the formatted output exactly fills the buffer, not including the null terminator. The previous check failed to account for the null terminator in this case, incorrectly returning the written count instead of 0.
2025-03-12[libc] Template the writing mode for the writer class (#111559)Joseph Huber
Summary: Currently we dispatch the writing mode off of a runtime enum passed in by the constructor. This causes very unfortunate codegen for the GPU targets where we get worst-case codegen because of the unused function pointer for `sprintf`. Instead, this patch moves all of this to a template so it can be masked out. This results in no dynamic stack and uses 60 VGPRs instead of 117. It also compiles about 5x as fast.
2025-02-21[libc] Add strftime_l (#127767)Petr Hosek
This is a (no-op) locale version of strftime. Fixes: https://github.com/llvm/llvm-project/issues/106630
2025-02-19Revert "[libc] Add strftime_l" (#127766)Petr Hosek
Reverts llvm/llvm-project#127708
2025-02-18[libc] Add strftime_l (#127708)Petr Hosek
This is a (no-op) locale version of strftime.