[Pas un bug] [r1225] compilation avec -Wextra ne marche pas

Démarré par BenObiWan, 27 Janvier 2010 à 23:55

0 Membres et 1 Invité sur ce sujet

27 Janvier 2010 à 23:55 Dernière édition: 28 Janvier 2010 à 07:51 par Christopho
Dans le même style que le -pedantic, je teste le -Wextra :D


      -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.)

          -Wclobbered -Wempty-body -Wignored-qualifiers
          -Wmissing-field-initializers -Wmissing-parameter-type (C only)
          -Wold-style-declaration (C only) -Woverride-init -Wsign-compare
          -Wtype-limits -Wuninitialized -Wunused-parameter (only with
          -Wunused or -Wall)

          The option -Wextra also prints warning messages for the following cases:
          ·   A pointer is compared against integer zero with <, <=, >, or >=.
          ·   (C++ only) An enumerator and a non-enumerator both appear in a conditional expression.
          ·   (C++ only) Ambiguous virtual bases.
          ·   (C++ only) Subscripting an array which has been declared register.
          ·   (C++ only) Taking the address of a variable which has been declared register.
          ·   (C++ only) A base class is not initialized in a derived class' copy constructor.


Enfin bref ça fait plein de checks marrants :D

Donc j'ai quelques trucs.

Dans SDL_Config :

/home/benobiwan/documents/solarus/solarus/trunk/src/SDL_Config/SDL_config.cpp: In function 'void CFG_Internal_ParseLine(CFG_Internal_File*, const char*, int)':
/home/benobiwan/documents/solarus/solarus/trunk/src/SDL_Config/SDL_config.cpp:797: erreur: comparaison est toujours vraie en raison d'une gamme limitée de type de données
/home/benobiwan/documents/solarus/solarus/trunk/src/SDL_Config/SDL_config.cpp:808: erreur: comparaison est toujours vraie en raison d'une gamme limitée de type de données


Dans sound :

/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp: In member function 'ALuint Sound::decode_wav(const std::string&)':
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:269: erreur: missing initializer for member 'SF_INFO::samplerate'
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:269: erreur: missing initializer for member 'SF_INFO::channels'
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:269: erreur: missing initializer for member 'SF_INFO::format'
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:269: erreur: missing initializer for member 'SF_INFO::sections'
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:269: erreur: missing initializer for member 'SF_INFO::seekable'
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp: At global scope:
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:366: erreur: unused parameter 'ptr'
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:366: erreur: unused parameter 'count'
/home/benobiwan/documents/solarus/solarus/trunk/src/lowlevel/Sound.cpp:366: erreur: unused parameter 'user_data'


Et dans pleins d'autres fichiers :

/home/benobiwan/documents/solarus/solarus/trunk/src/enemies/PapillosaurKing.cpp:89: erreur: unused parameter 'destructible_item'
/home/benobiwan/documents/solarus/solarus/trunk/src/enemies/PapillosaurKing.cpp:171: erreur: unused parameter 'source'


Ce ne sont évidemment pas des trucs super grave, surtout les "unused parameter" vu que c'est en cours de dev c'est normal qu'il y en ait :) Mais bon voila c'était juste for the fun ;)
Citation
Ash Nazg Durbatulùk, Ash Nazg Gimbatul,
Ash Nazg Thrakatulùk agh bruzum-ishi krimpatul.
The fellowship of the Ring - J.R.R. Tolkien

La version r1227 corrige le warning de l'initialisation manquante dans Sound (bien que ça ne change rien à l'exécution car cette structure est créée pour être écrite, pas lue).
SDL_Config est une horreur au niveau des warnings et du code et j'envisage de la remplacer par une autre bibliothèque.

En revanche, les paramètres non utilisés, c'est tout à fait normal et ce n'est pas à cause d'une instabilité de la version actuelle. La plupart sont dans des fonctions redéfinies par héritage, donc toutes les redéfinitions n'ont pas besoin de tous les paramètres. D'autres sont des fonctions dont le profil est imposé par une API et là aussi on n'a pas forcément besoin d'utiliser tous les paramètres fournis.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Bah de toute façon c'est pas pour rien que ces tests ne sont pas dans -Wall :D ca peut juste mettre en lumière des erreurs de temps en temps.
Citation
Ash Nazg Durbatulùk, Ash Nazg Gimbatul,
Ash Nazg Thrakatulùk agh bruzum-ishi krimpatul.
The fellowship of the Ring - J.R.R. Tolkien