CodeQL 文档

由于 goto 或 break 语句导致的死代码

ID: cpp/dead-code-goto
Kind: problem
Security severity: 
Severity: warning
Precision: high
Tags:
   - maintainability
   - external/cwe/cwe-561
Query suites:
   - cpp-security-and-quality.qls

单击查看 CodeQL 代码库中的查询

紧随 gotobreak 语句之后的代码将不会执行,除非存在标签或 switch case 语句。如果代码是必要的,则会导致逻辑错误或资源泄漏。如果代码是不必要的,则可能会混淆阅读者。

建议

如果无法访问的代码是必要的,请将 gotobreak 语句移到代码之后。否则,请删除无法访问的代码。

示例

goto err1;
free(pointer); // BAD: this line is unreachable
err1: return -1;

free(pointer); // GOOD: this line is reachable
goto err2;
err2: return -1;

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私