有没有办法可以使用clang捕获set但未使用的变量,类似于gcc' s Werror=unused-but-set-parameter
?
我设置-Wunused
但是clang没有捕获设置但未使用的参数。
答案 0 :(得分:1)
我不确定您是否尝试过多次列出的内容,但是有关CLANG 未使用选项的更多信息,请使用其GCC兼容性:
首先 ,这是文档建议的内容:
-Wextra -Wunused-but-set-parameter
以下是背景参考信息:
来自 HERE :
如果您使用的是LLVM-GCC或Apple LLVM编译器构建选项,则可以启用/禁用大量可能的编译器警告。 Clang前端还支持GCC诊断警告(请参阅http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html)以获得向后兼容性。
在该引用中引用的链接后面列出了GCC警告系列中的几个未使用的选项:
-Wall
这将启用有关某些用户认为有问题且易于避免(或修改以防止警告)的构造的所有警告,即使与宏结合使用也是如此。这还可以在C ++方言选项和Objective-C以及Objective-C ++方言选项中描述一些特定于语言的警告。
-Wall turns on the following warning flags:
(there are many more, just listing 'unused')
...
-Wunused-function
-Wunused-label
-Wunused-value
-Wunused-variable
...
最后,就在最后一个街区的下方:
-Wextra
This enables some extra warning flags that are not enabled by -Wall.
(This option used to be called -W. The older name is still supported, but the newer name is more descriptive.)
(again, there are more, just listing _unused variety)
-Wunused-parameter (only with -Wunused or -Wall)
-Wunused-but-set-parameter (only with -Wunused or -Wall)
答案 1 :(得分:1)
由clang-tidy生成的clang-analyzer生成的等效警告:
note: Value stored to 'tmp' is never read
warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
看起来LLVM选择将一些GCC警告作为单独的工具来实现。
答案 2 :(得分:-1)