Augmenter le niveau de warning avec Qt Creator

Voici un petit programme C++ développé avec l’IDE Qt Creator :

#include <iostream>

int main() {
   short A = 60000;
   std::cout << "A vaut " << A << "\n";
   return 0;
}

À priori, très simple mais qui ne fonctionne pas comme désiré. Le problème ? L’affectation du nombre 60000 dans un short signé.

Malheureusement, lors de la compilation de ce programme, aucun warning n’est émis !

Pour augmenter le niveau de warning, il suffit de modifier le fichier projet (.pro) et d’y ajouter la ligne suivante :

QMAKE_CXXFLAGS_WARN_ON += -Wconversion

Pour être informé d’un maximum de warnings, il serait même judicieux d’y ajouter le flag -Wextra, ce qui aboutirait à la ligne suivante :

QMAKE_CXXFLAGS_WARN_ON += -Wconversion -Wextra

En plus des problèmes de conversion, il peut également y avoir des problèmes lors du passage d’un type signé vers non-signée et vice-versa. Pour détecter ces problèmes, il faut utiliser le flag –Wsign-conversion.

D’une façon générale, il peut même être pratique de considérer les warnings comme des erreurs, afin de ne rien laisser passer. Pour ce faire, il faut ajouter le flag -Werror, ce qui abouti à la ligne suivante :

QMAKE_CXXFLAGS_WARN_ON += -Wconversion -Wextra -Wsign-conversion -Werror

Tags: ,

Comments are closed.