2016-02-23 1 views
1

#pragma message est implémenté dans Clang comme avertissement. Y at-il un moyen de désactiver l'avertissement uniquement pour ce pragma, il aura donc comme MS Visual Studio, ou d'une autre manière de donner des messages d'information à partir du code? (J'ai besoin d'une réponse en tant qu'utilisateur final avec un Clang donné, je ne peux pas re-compiler le Clang lui-même sur ce projet)Comment désactiver l'avertissement pour un message pragma dans Clang?

Merci pour votre aide.

Répondre

2

Je me rends compte que cet article date d'un an et l'OP a probablement déjà trouvé sa réponse mais comme je cherchais la réponse moi-même, j'ai pensé que je pourrais également inclure l'information ici.

du manuel de l'utilisateur Clang:

https://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas

Le pragma peut contrôler tout avertissement qui peut être utilisé à partir de la ligne de commande. Les avertissements peuvent être ignorés, avertis, erronés ou fatals.

Toute tentative de définir la classe à autre chose que ci-dessus:

#pragma clang diagnostic push 
#pragma clang diagnostic note "-W#pragma-messages" 
#pragma message "HELLO!" 
#pragma clang diagnostic pop 

int main(int argc, char **argv) 
{ 
} 

résultats dans un avertissement montrant les mêmes options:

/tmp/test.cc:3:26: warning: pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop' [-Wunknown-pragmas] 
#pragma clang diagnostic note "-W#pragma-messages" 
         ^
/tmp/test.cc:4:9: warning: HELLO! [-W#pragma-messages] 
#pragma message "HELLO!" 
     ^
2 warnings generated. 

Il semble donc que, comme il de Clang 5.0 Il n'y a aucun moyen de traiter le message comme informatif plutôt que comme un avertissement.