Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5313 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...  -- 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
Modosaurus Rex
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+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
mood
Publicité
Posté le 19-10-2003 à 14:48:44  profilanswer
 

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
Modosaurus Rex
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+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°544676
Joel F
Real men use unique_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:


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 ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)