☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

不应存在完全相同的 case 或 default 分枝

9.5.7 ID_switch_identicalBranch
目录 › next › previous

完全相同的分枝应合并成一个分枝,也可能是由复制粘贴造成的错误。

示例:

switch (v)
{
case 1:
    branch1
    break;
case 2:
    branch2
    break;
case 3:
    branch1   // Non-compliant
    break;
}

例中 case 3 对应的分枝和 case 1 对应的分枝完全相同,应将其合并为一个分枝,或修正本应存在的差异。

例外:

如果分枝代码量较少,为了使代码更清晰可以接受适当的重复,但如果代码量很多就不应重复了,审计工具不妨指定一个数量限制,当重复分枝的符号数量超过这个限制时算作违规,否则放过。

配置

branchTokenCountThreshold: 分枝符号数量阈值,不检查符号数量小于该值的分枝

相关

ID_if_identicalBlock ID_if_identicalElseIfBlock

参考

C++ Core Guidelines ES.3
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.