2015-11-16 2 views
5

Je viens d'installer ClangOnWin, et j'essaye d'obtenir clang-tidy "moderniser" les contrôles pour fonctionner. Malheureusement, clang-tidy ne semble pas savoir à leur sujet: clang-tidy -list-checks foo.cpp -- | grep modernize ne produit aucune sortie. Les contrôles "moderniser" sont répertoriés here, mais cette page semble documenter Clang 3.8, et la version que j'ai installée est 3.7. Cependant, la version 3.7 est la version actuelle au LLVM Download Page. Connaît une variété de contrôles de sécurité, donc je pense que je l'ai installé correctement. Par exemple, clang-tidy -list-checks foo.cpp -- | grep security cède ceci:Comment puis-je activer les contrôles "moderniser" de clang-tidy?

clang-analyzer-security.FloatLoopCounter 
clang-analyzer-security.insecureAPI.UncheckedReturn 
clang-analyzer-security.insecureAPI.getpw 
clang-analyzer-security.insecureAPI.gets 
clang-analyzer-security.insecureAPI.mkstemp 
clang-analyzer-security.insecureAPI.mktemp 
clang-analyzer-security.insecureAPI.rand 
clang-analyzer-security.insecureAPI.strcpy 
clang-analyzer-security.insecureAPI.vfork 

Y at-il quelque chose que je dois spécial faire pour permettre des contrôles tels que modernize-use-override et modernize-use-nullptr?

Répondre

1

Avez-vous essayé avec les fichiers binaires officiels de LLVM: http://llvm.org/releases/download.html? Peut-être que les binaires ClangOnWin ne sont pas compilés avec toutes les options, ou quelque chose de ce genre.

+0

Avec -checks = "*" cela fonctionne très bien! –

3

Les contrôles de modernisation ont été ajoutés après 3.7 (portés à partir de clang-modernize), mais essayez d'ajouter -checks="*" pour voir la liste complète des contrôles disponibles.

clang-tidy -list-checks -checks="*" foo.cpp --