3

我有一个旧程序,它是通过 CFLAGS="-Wunreachable-code" 用 clang 构建的,它在某个 switch() 上显示一些警告,在休息时;它在哪里说它“永远不会被执行”,简单地删除无法访问的代码是否安全,或者本质上是 -Wunreachable-code beta?

具体来说,它对一些函数发出警告,即:在前一次返回后返回 -1,并在 switch() 内部中断

4

3 回答 3

12

阅读代码,理解它,如果标记为无法访问的代码确实无法访问,并且不是因为逻辑错误而无法访问,那么您可以将其删除。如果您还没有阅读并理解代码,那么无论编译器怎么说,修改它都是不安全的。

于 2012-10-10T04:30:33.227 回答
2

我刚刚找到以下链接:

http://old.nabble.com/gcc--Wunreachable-code-option-td31698329.html

该选项已被删除,因为它不稳定。检查邮件线程以获取详细信息

于 2012-10-10T03:46:15.270 回答
1

我很确定警告是保守的,即除非编译器确定它是无法访问的代码,否则不会给出警告。

于 2012-10-10T03:45:43.140 回答