IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

warning lors de la compilation


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut warning lors de la compilation
    Bonjour, lorsque je compile mon prgm j'ai le warning suivant :

    ../Sources/Mysources/mechanism.c:889: attention : will never be executed
    ce qui correspond au code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       CHONr[0]+=sc*species[i]->atoms->C;
       CHONr[1]+=sc*species[i]->atoms->H;  /* <-- c'est cette ligne ci */
       CHONr[2]+=sc*species[i]->atoms->O;
       CHONr[3]+=sc*species[i]->atoms->N;
    pourtant je n'ai aucn waring sur les 3 autres lignes. Encore plus surprenant, j'ai le même warning ici :

    /usr/include/ctype.h:198: attention : will never be executed
    et c'est le fichier ctype.h !

    Avez-vous une explication ? Merci.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Normalement, ce warning, c'est quand tu as un bout de code qui ne sera jamais executé genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int mafonction(void)
    {
       printf("mafonction\n");
       return 0;
       printf("warning ici\n");
    }
    Quel est ton système, tes options de compilations?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Je suis sous la suse pro 9.3. Mes options de compilations sont les suivantes :

    -O2 -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
    -Werror-implicit-function-declaration -Wmain -Wparentheses
    -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
    -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef
    -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings
    -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes
    -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn
    -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
    -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long
    -Wunreachable-code
    (je les ai chopées ici : http://emmanuel-delahaye.developpez....tm#cfg_compilo)

    j'ai bien compris le sens du warning, mais je ne comprend pas pourquoi mon code ne s'éxécutera jamais.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par salseropom
    Bonjour, lorsque je compile mon prgm j'ai le warning suivant :
    ce qui correspond au code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       CHONr[0]+=sc*species[i]->atoms->C;
       CHONr[1]+=sc*species[i]->atoms->H;  /* <-- c'est cette ligne ci */
       CHONr[2]+=sc*species[i]->atoms->O;
       CHONr[3]+=sc*species[i]->atoms->N;
    pourtant je n'ai aucn waring sur les 3 autres lignes. Encore plus surprenant, Avez-vous une explication ? Merci.
    Tu es sûr du numéro de ligne ? Tu n'utilises jamais #line ?

    Sinon, c'est assez étrange. Il ne faut pas exclure une erreur de l'analyseur de flux de gcc... Quelle version ? ($ gcc --version)

    Essaye de poster le code minimum complet qui produit le warning.

    D'après ce que j'ai vu plus loin, tu compiles en mode -ed-paranoid. OK !

    Tu es donc en optimisation -O2. Essaye en -O1, puis en -O, puis en rien du tout.

    Si c'est trop fréquent tu peux retirer -Wunreachable-code (mais reste en -O2)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Re bonjour,

    Citation Envoyé par Emmanuel Delahaye
    Tu es sûr du numéro de ligne ? Tu n'utilises jamais #line ?

    Sinon, c'est assez étrange. Il ne faut pas exclure une erreur de l'analyseur de flux de gcc... Quelle version ? ($ gcc --version)

    Essaye de poster le code minimum complet qui produit le warning.

    D'après ce que j'ai vu plus loin, tu compiles en mode -ed-paranoid. OK !

    Tu es donc en optimisation -O2. Essaye en -O1, puis en -O, puis en rien du tout.

    Si c'est trop fréquent tu peux retirer -Wunreachable-code (mais reste en -O2)
    voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     /* reactants */
     unsigned int CHONr[4]; /* numbers atoms of C, H, O, N for the reactants */   
     CHONr[0]=CHONr[1]=CHONr[2]=CHONr[3]=0;
     char *p=strchr(reac,'+');
     while(p!=NULL)
     {
       strncpy(s,reac,p-reac);
       s[p-reac]='\0';
       ++p;
       reac=p;
       sc=FindStoechioCoeffAndSpecies(s,name);
       for(i=0;strcmp(name,species[i]->name);++i);
       if(species[i]->atoms->inac==1) return 1;     
       CHONr[0]+=sc*species[i]->atoms->C;
       CHONr[1]+=sc*species[i]->atoms->H;
       CHONr[2]+=sc*species[i]->atoms->O;
       CHONr[3]+=sc*species[i]->atoms->N;
       p=strchr(reac,'+');
     } /* end of while(p!=NULL) */
    je n'utilise pas #line (enfin je ne pense pas car je ne sais pas ce que cela veut dire).
    J'avais oublié de préciser que j'étais en -O3 et non en -O2 et que j'ai rajouté -Wall -W (ma version de gcc est la 3.3)
    Avec -O2 je n'ai plus ce warning.
    bizarre...

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par salseropom
    J'avais oublié de préciser que j'étais en -O3 et non en -O2 et que j'ai rajouté -Wall -W (ma version de gcc est la 3.3)
    Avec -O2 je n'ai plus ce warning.
    bizarre...
    Essaye d'installer une version plus récente de gcc.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    OK, je vais m'y atteler !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. warnings lors de la compilation
    Par manaiilhem dans le forum Fortran
    Réponses: 9
    Dernier message: 28/03/2013, 09h35
  2. Réponses: 3
    Dernier message: 19/03/2009, 10h56
  3. JDBC warning lors de la compilation
    Par kichemans dans le forum JDBC
    Réponses: 5
    Dernier message: 27/12/2005, 15h40
  4. Warnings lors de la compilation
    Par polo54 dans le forum C
    Réponses: 5
    Dernier message: 07/02/2003, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo