不应存在完全相同的 case 或 default 分枝
9.5.7 ID_switch_identicalBranch
完全相同的分枝应合并成一个分枝,也可能是由复制粘贴造成的错误。
示例:
switch (v)
{
case 1:
branch1
break;
case 2:
branch2
break;
case 3:
branch1 // Non-compliant
break;
}
例中 case 3 对应的分枝和 case 1 对应的分枝完全相同,应将其合并为一个分枝,或修正本应存在的差异。
例外:
如果分枝代码量较少,为了使代码更清晰可以接受适当的重复,但如果代码量很多就不应重复了,审计工具不妨指定一个数量限制,当重复分枝的符号数量超过这个限制时算作违规,否则放过。
配置
branchTokenCountThreshold: 分枝符号数量阈值,不检查符号数量小于该值的分枝