$ gcc --version
gcc (GCC) 4.1.2 20061028 (prerelease) (Debian 4.1.1-19)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
$ gcc -Wall -Wextra -c toto.c
$
Pas de warning ?
Je suis sur que GCC est capable dans certains cas de prévenir qu'une
expression n'a pas d'effet. Pourquoi n'y arrive t-il pas dans ce cas ?
Y a t-il un flag supplémentaire qui activerait ce warning ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Bourguignon
cedric cellier writes:
Bonjour !
Voici :
void toto(int i) { i = i; }
$ gcc --version gcc (GCC) 4.1.2 20061028 (prerelease) (Debian 4.1.1-19) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -Wall -Wextra -c toto.c $
Pas de warning ? Je suis sur que GCC est capable dans certains cas de prévenir qu'une expression n'a pas d'effet. Pourquoi n'y arrive t-il pas dans ce cas ? Y a t-il un flag supplémentaire qui activerait ce warning ?
C'est que l'idiome i=i; est justement utilisé pour neutraliser un autre warning, celui d'une variable non utilisée!
On pourrait ajouter au makefile a grep pour signaler ces instructions inutiles. Quelque chose comme:
$ gcc --version
gcc (GCC) 4.1.2 20061028 (prerelease) (Debian 4.1.1-19)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
$ gcc -Wall -Wextra -c toto.c
$
Pas de warning ?
Je suis sur que GCC est capable dans certains cas de prévenir qu'une
expression n'a pas d'effet. Pourquoi n'y arrive t-il pas dans ce cas ?
Y a t-il un flag supplémentaire qui activerait ce warning ?
C'est que l'idiome i=i; est justement utilisé pour neutraliser un
autre warning, celui d'une variable non utilisée!
On pourrait ajouter au makefile a grep pour signaler ces instructions
inutiles. Quelque chose comme:
$ gcc --version gcc (GCC) 4.1.2 20061028 (prerelease) (Debian 4.1.1-19) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -Wall -Wextra -c toto.c $
Pas de warning ? Je suis sur que GCC est capable dans certains cas de prévenir qu'une expression n'a pas d'effet. Pourquoi n'y arrive t-il pas dans ce cas ? Y a t-il un flag supplémentaire qui activerait ce warning ?
C'est que l'idiome i=i; est justement utilisé pour neutraliser un autre warning, celui d'une variable non utilisée!
On pourrait ajouter au makefile a grep pour signaler ces instructions inutiles. Quelque chose comme:
-- __Pascal Bourguignon__ http://www.informatimago.com/ In deep sleep hear sound, Cat vomit hairball somewhere. Will find in morning.
Thierry Boudet
On 2006-12-08, Pascal Bourguignon wrote:
void toto(int i) { i = i; }
$ gcc -Wall -Wextra -c toto.c $
Pas de warning ? Je suis sur que GCC est capable dans certains cas de prévenir qu'une expression n'a pas d'effet. Pourquoi n'y arrive t-il pas dans ce cas ? Y a t-il un flag supplémentaire qui activerait ce warning ?
Moi aussi, il me semble bien avoir vu passer un warning du genre "statement have no effect". Mais je confond peut-être avec un lint...
-- Quels indicateurs devrait-on mesurer pour tenter de déterminer un "indice de viscosité" raisonnable par rapport à la fréquentation moyenne de usenet-fr, ou -si du moins c'est pertinent- à celle de fufe ? --{ mécanique des fufluides }--
On 2006-12-08, Pascal Bourguignon <pjb@informatimago.com> wrote:
void toto(int i)
{
i = i;
}
$ gcc -Wall -Wextra -c toto.c
$
Pas de warning ?
Je suis sur que GCC est capable dans certains cas de prévenir qu'une
expression n'a pas d'effet. Pourquoi n'y arrive t-il pas dans ce cas ?
Y a t-il un flag supplémentaire qui activerait ce warning ?
Moi aussi, il me semble bien avoir vu passer un warning du
genre "statement have no effect". Mais je confond peut-être
avec un lint...
--
Quels indicateurs devrait-on mesurer pour tenter de déterminer un
"indice de viscosité" raisonnable par rapport à la fréquentation
moyenne de usenet-fr, ou -si du moins c'est pertinent- à celle de fufe ?
--{ mécanique des fufluides }--
Pas de warning ? Je suis sur que GCC est capable dans certains cas de prévenir qu'une expression n'a pas d'effet. Pourquoi n'y arrive t-il pas dans ce cas ? Y a t-il un flag supplémentaire qui activerait ce warning ?
Moi aussi, il me semble bien avoir vu passer un warning du genre "statement have no effect". Mais je confond peut-être avec un lint...
-- Quels indicateurs devrait-on mesurer pour tenter de déterminer un "indice de viscosité" raisonnable par rapport à la fréquentation moyenne de usenet-fr, ou -si du moins c'est pertinent- à celle de fufe ? --{ mécanique des fufluides }--
Vincent Guichard
C'est que l'idiome i=i; est justement utilisé pour neutraliser un autre warning, celui d'une variable non utilisée!
Il me semblait que c'était (void) i; qui était conseillé dans ce cas. Une des deux méthodes est-elle préconisée?
Vincent Guichard
C'est que l'idiome i=i; est justement utilisé pour neutraliser un
autre warning, celui d'une variable non utilisée!
Il me semblait que c'était (void) i; qui était conseillé dans ce cas.
Une des deux méthodes est-elle préconisée?
THIS IS A 100% MATTER PRODUCT: In the unlikely event that this merchandise should contact antimatter in any form, a catastrophic explosion will result.
Vincent Guichard <vg.bleuciel.sa@wanadoo.fr> writes:
C'est que l'idiome i=i; est justement utilisé pour neutraliser un
autre warning, celui d'une variable non utilisée!
Il me semblait que c'était (void) i; qui était conseillé dans ce
cas. Une des deux méthodes est-elle préconisée?
Oui, sur les compilateurs pas trop vieux, (void)i; est surement meilleur.
THIS IS A 100% MATTER PRODUCT: In the unlikely event that this
merchandise should contact antimatter in any form, a catastrophic
explosion will result.
THIS IS A 100% MATTER PRODUCT: In the unlikely event that this merchandise should contact antimatter in any form, a catastrophic explosion will result.