跳转至

静态分析

编译基线:

  • -Wall
  • -Wextra
  • -Werror
  • -Wpedantic
  • conversion/sign/cast 相关警告

cppcheck 基线:

cmake --build build/gcc-test --target xgl_static_analysis

发布环境必须安装 cppcheck。不可把 unavailable 当作 release 通过。

失败处理

失败 处理
compiler warning 被 -Werror 提升 修复代码,或把 conversion/cast 写得明确
cppcheck 在 production code 中发现问题 修复代码;只有确认是 false positive 时才加定向 suppression
cppcheck 不可用 对 release validation 视为环境失败
generated/build output warning 优先从分析输入中排除生成产物,而不是 suppress 源文件

suppression 必须尽量窄:优先使用 line-level 或 symbol-level suppression,并在代码附近写明简短原因。不要对 wire format、allocator lifetime、authentication 或 fragment reassembly 路径添加宽泛的整文件 suppression。

重点审查:

  • v2 wire header offset 编解码。
  • allocator 失败路径。
  • fragment reassembly 生命周期。
  • callback reentrancy。
  • ISR 到协议 task 的边界。