Repository navigation
klibc: fix tiny vsnprintf long long formatting - #11600
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: kernelReviewers: @GorrayLi @ReviewSun @hamburger-os @lianux-mm @wdfk-prog @xu18838022837 Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-11-02 13:33 CST)
📝 Review Instructions
|
|
|
@CYFS3 冲突需要解决下 |
b605087 to
856f5df
Compare
已处理 |
拉取/合并请求描述(PR description)
[
为什么提交这份PR (why to submit this PR)
修复 issue #11596:tiny 版本
rt_vsnprintf在格式化%lld/%lli时,把llqualifier 与lqualifier 合并到long路径处理,导致 long long 数值被错误截断或符号判断错误,例如INT64_MAX输出为-1。你的解决方案是什么 (what is your solution)
在
rt_vsnprintf_tiny.c中将L(内部用于表示ll)和l的有符号处理拆开:ll按long long取参并按 64 位符号范围处理,l继续保持long路径。同步补充rt_sprintflong long 边界值回归用例,覆盖INT32_MIN、UINT32_MAX、INT64_MIN、INT64_MAX。请提供验证的bsp和config (provide the config and bsp)
BSP: bsp/qemu-vexpress-a9
.config: CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG=y,未启用 CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD,使用 tiny 版本验证
action: 本地环境缺少可用交叉编译工具链,未触发 action;已执行
git diff --check]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I have considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up