使用clang捕获set但未使用的参数

时间:2014-06-26 14:31:38

标签: c++ c clang

有没有办法可以使用clang捕获set但未使用的变量,类似于gcc' s Werror=unused-but-set-parameter? 我设置-Wunused但是clang没有捕获设置但未使用的参数。

3 个答案:

答案 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)

在这个website中,如果你搜索'unused',你可以找到一些你可以使用的标志。我认为this一个是你的旗帜:

clang -Wunused-variable test.c