Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
694 connectés 

  FORUM HardWare.fr
  Programmation
  C

  gcc peut-il faire ça ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gcc peut-il faire ça ?

n°543057
Enidan
Posté le 19-10-2003 à 12:17:37  profilanswer
 

Salut à tous,
 
Aux gourous de gcc, y-a-t-il moyen de faire sortir à "gcc" un warning sur le code suivant (affectation d'un négatif dans une variable non signée) ?

Code :
  1. int tata;
  2. unsigned int toto;
  3. toto = -14;
  4. tata = -8;
  5. toto = tata;


Merci d'avance.


Message édité par Enidan le 19-10-2003 à 12:21:59
mood
Publicité
Posté le 19-10-2003 à 12:17:37  profilanswer
 

n°543058
kadreg
profil: Utilisateur
Posté le 19-10-2003 à 12:27:33  profilanswer
 

Pas à ma connaissance. IL ne fait des warnings que dans le cas de comparaisons entre signés et non signés.


---------------
brisez les rêves des gens, il en restera toujours quelque chose... -- je hais les rambolitains -- laissez moi troller sur discu !
n°543060
Enidan
Posté le 19-10-2003 à 12:32:58  profilanswer
 

kadreg a écrit :

Pas à ma connaissance. IL ne fait des warnings que dans le cas de comparaisons entre signés et non signés.


Je viens d'essayer : meme pas.
 
Je compile avec ces options :
-Wall -Wshadow -ansi -pedantic -c

n°543061
Taz
bisounours-codeur
Posté le 19-10-2003 à 12:36:52  profilanswer
 

-Wconversion

n°543064
Enidan
Posté le 19-10-2003 à 12:43:17  profilanswer
 

Taz a écrit :

-Wconversion


 
Merci Taz !
Par-contre, ça ne résoud que la moitié du pb : toto=-14.
Le code toto=tata ne provoque toujours pas de warning !

n°543066
Taz
bisounours-codeur
Posté le 19-10-2003 à 12:55:58  profilanswer
 

je crois qu'on ne peut pas. c'est une instruction légale en C. écume les ml pourvoir si y a des infos la dessus.

n°543068
Enidan
Posté le 19-10-2003 à 13:01:29  profilanswer
 

Heu, c quoi les ml ?

n°543070
Taz
bisounours-codeur
Posté le 19-10-2003 à 13:02:09  profilanswer
 

mailing lists

n°543071
Enidan
Posté le 19-10-2003 à 13:02:44  profilanswer
 

OK, merci, je vais faire ça.
 
A+

n°543113
gilou
Modérateur
It's the only NEET thing to do
Posté le 19-10-2003 à 14:48:44  profilanswer
 

Enidan a écrit :

Salut à tous,
 
Aux gourous de gcc, y-a-t-il moyen de faire sortir à "gcc" un warning sur le code suivant (affectation d'un négatif dans une variable non signée) ?

Code :
  1. int tata;
  2. unsigned int toto;
  3. toto = -14;
  4. tata = -8;
  5. toto = tata;


Merci d'avance.
 


Peut etre qu'un outil a la lint te filerait les warnings necessaires.
A+,


---------------
I think you guys should really consider virtualizing the whole process and moving it to the cloud.
n°543119
Taz
bisounours-codeur
Posté le 19-10-2003 à 15:03:08  profilanswer
 

oui,
 

[benoit@athlon tmp]$ cat cast.c
void f()
{
  int tata;
  unsigned int toto;
   
  toto = -14;
  tata = -8;
  toto = tata;
}
[benoit@athlon tmp]$ lint cast.c
LCLint 2.4b --- 18 Apr 98
 
cast.c: (in function f)
cast.c:6:3: Assignment of int to unsigned int: toto = -14
  To ignore signs in type comparisons use +ignoresigns
cast.c:8:3: Assignment of int to unsigned int: toto = tata
 
Finished LCLint checking --- 2 code errors found

n°544552
Enidan
Posté le 20-10-2003 à 08:46:24  profilanswer
 

gilou a écrit :


Peut etre qu'un outil a la lint te filerait les warnings necessaires.


Oui, je sais.
C'est pour le boulot. On utilise Prolint. Le pb est qu'on nous impose de faire des casts explicites "partout". Sur le principe, ça se justifie, mais on en arrive à écrire des choses comme ça :

Code :
  1. unsigned int i;
  2. for (i=(unsigned int)0; i<(unsigned int)10; i++) {}


Ou encore :

Code :
  1. short tableau[] = { (short)1, (short)2 };


Et je cherche des arguments pour faire sauter la vérif dans ces cas-là ...

n°544556
Taz
bisounours-codeur
Posté le 20-10-2003 à 08:55:36  profilanswer
 

0u et hop, magique !
 
par contre pour les shorts .... lis un peu la doc quand même, doit y avoir un truc de prévu

n°544607
gilou
Modérateur
It's the only NEET thing to do
Posté le 20-10-2003 à 10:13:47  profilanswer
 

Enidan a écrit :


Oui, je sais.
C'est pour le boulot. On utilise Prolint. Le pb est qu'on nous impose de faire des casts explicites "partout". Sur le principe, ça se justifie, mais on en arrive à écrire des choses comme ça :

Code :
  1. unsigned int i;
  2. for (i=(unsigned int)0; i<(unsigned int)10; i++) {}


Ou encore :

Code :
  1. short tableau[] = { (short)1, (short)2 };


Et je cherche des arguments pour faire sauter la vérif dans ces cas-là ...


Ah je vois. Bon, c'est sur que c'est lourd, mais c'est pas la mort.
A+,


---------------
I think you guys should really consider virtualizing the whole process and moving it to the cloud.
n°544676
Joel F
Real men use shared_ptr
Posté le 20-10-2003 à 11:09:14  profilanswer
 

je vois pas l'interet .... c un peu debile quand meme non ?
 
enfin le short i = (short)4; ???? :heink:


---------------
MetaScale | Mes cartes Magic
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  gcc peut-il faire ça ?

 

Sujets relatifs
Plus de sujets relatifs à : gcc peut-il faire ça ?


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware