Forum Solarus-Games francophone

Zelda => Zelda : Mystery of Solarus DX => Bugs traités => Discussion démarrée par: BenObiWan le 27 Janvier 2010 à 23:55

Titre: [Pas un bug] [r1225] compilation avec -Wextra ne marche pas
Posté par: BenObiWan le 27 Janvier 2010 à 23:55
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 ;)
Titre: Re : [Pas un bug] [r1225] compilation avec -Wextra ne marche pas
Posté par: Christopho le 28 Janvier 2010 à 07:59
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.
Titre: Re : [Pas un bug] [r1225] compilation avec -Wextra ne marche pas
Posté par: BenObiWan le 28 Janvier 2010 à 08:31
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.