Поймал установленные, но неиспользуемые параметры с помощью лязга

Есть ли способ, которым я мог бы перехватить установленные, но неиспользуемые переменные, используя clang, что-то похожее на gcc Werror=unused-but-set-parameter? Я поставил -Wunused но Clang не ловит установленные, но неиспользуемые параметры.

3 ответа

Существует эквивалентное предупреждение, генерируемое 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 как отдельные инструменты.

Я не уверен, что вы пробовали больше, чем то, что вы перечислили, но вот больше информации о неиспользуемых опциях CLANG с использованием его совместимости с GCC:

Во-первых, вот что предлагает документация:

-Wextra  -Wunused-but-set-parameter  

Ниже приведена справочная справочная информация:

СЮДА

Если вы используете опцию компиляции 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)  

На этом сайте, если вы ищете "неиспользованный", вы можете найти некоторые флаги, которые вы можете использовать. И я думаю, что это ваш флаг

clang -Wunused-variable test.c
Другие вопросы по тегам