web-dev-qa-db-fra.com

Manière en ligne de désactiver les vérifications ordonnées

J'essaie de mettre en place un rangement pour un projet. J'aimerais pouvoir avoir une sortie propre et encourager l'utilisation du mode -fix lorsque cela est possible. Cependant, il existe des cas individuels où une exception est nécessaire.

Autant qu'il est possible d'utiliser

#pragma clang diagnostic Push
#pragma clang diagnostic ignored "-Wreserved-id-macro"
// Code that is being specially exempted
#pragma clang diagnostic pop

pour le cas équivalent où l'on veut désactiver localement un avertissement du compilateur, est-il possible de faire quelque chose de similaire à partir de clang-tidy?

J'ai essayé

#pragma clang diagnostic Push
#pragma clang diagnostic ignored "readability-identifier-naming"
// Code that is being specially exempted
#pragma clang diagnostic pop

et aussi avec clang remplacé par clang-tidy. Malheureusement, lorsque j'utilise clang comme cible de pragma et que je compile avec un clang normal, j'obtiens l'avertissement de compilation

warning: pragma diagnostic expected option name (e.g. "-Wundef") [-Wunknown-pragmas]

et

warning: unknown pragma ignored [clang-diagnostic-unknown-pragmas]

lors de la compilation si j'utilise clang-tidy à la place de clang. Ni avoir un impact sur ce que clang-tidy lui-même sort lorsqu'il est exécuté sur la source.

C'est avec clang et clang-tidy 3.8 sous x86_64 Linux.

19
Rich L

Ajoutez simplement un commentaire contenant la chaîne NOLINT n'importe où sur la ligne que vous souhaitez ignorer. Par exemple:

badcode;  // NOLINT

// NOLINTNEXTLINE
badcode;

badcode; // NOLINT(cert-err-58-cpp)

Voir la documentation ici .

24
Niall Douglas