30

moui enfin ça coûte de rien de le corriger ou de désactiver ce warning-là en particulier... sinon tu es sûr de rater d'éventuels warnings utiles ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

31

#honte# j'ai pas trouvé comment le desactiver #honte# (faut dire que le man est inbouffable, et la doc n'en parlons pas...)

et pour le corriger, je vois pas trop comment :/

_func_ est un char[] ou un char * (ce qui est la meme chose théoriquement) a la limite ptet mettre

Bla(const char *)

mais bon
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

32

-Wno-const-trucbidule je crois...

Pour le corriger, ben cf ./28 : au lieu de faire Bla(_func_) tu peux faire Bla((const char *)_func_) ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

33

mouai
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

34

ou tu changes le proto de ta fonction, si c'est vraiment const y'a plutôt interet à ce qu'elle ne le modifie pas, donc ça devrait pas poser de pb de rajouter le "const" qui manque (c'est même conseillé ^^)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

35

Bon j'avais raison ^^
c'est pas un pbm de type const (malheureusement)

plyfile.c:574: warning: passing argument 3 of 'InternalPLog' discards qualifiers from pointer target type
(enfin si apriori ça a un rapport avec const, vu que j'ai mit "const char *" il me pete plus l'erreur sorry

GCC a vraiment des messages cryptiques sorry

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

36

Je pense que le warning signifie que tu passes un argument qui est "const" (ce mot-clef doit être un qualifier) à une fonction dont le prototype ne contient pas "const", et que donc en faisant cet appel tu risques a priori de modifier ton pointeur const. En d'autres termes il doit faire un typecast automatique de "const t*" vers "t*" tout court (ie il "discarde" le "qualifier"), et il te prévient que tu as perdu en sécurité.
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

37

mouais, c'est pas un warning que j'activerais de base quoi :/

mais bon
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

38

bah si quand même... ça veut dire que ta variable est en lecture seule, et que tu la passes à une fonction qui est capable d'y écrire. vu les problèmes que ça peut causer, il est assez normal ce warning :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

39

c'est la définition de __func__ qui est foireuse, __FILE__ ne pose pas ce pbm lui
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

40

heu t'es sûr ?

void _main(void)
{
   const char* const func = __func__;
}

j'ai aucun warning avec ça moi confus
(si ce n'est que __func__ vaut "__main" au lieu de "_main"... décidement cette fonction est toujours aussi transparente grin)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

41

void _main(void) ? trifus

(ha oui c'est vrai qu'on est dans la partie TI-68k hehe )

Non j'ai

InternalPLog(int level, char *func, char *file, int line, char *fmt, ...)

et

#define Plog(level,...) InternalPLog(level,__func__,__FILE__,__LINE__,VA_START)

et le parametre __func__ me pose pbm, alors que les autres non (enfin surtout __FILE__ quoi qui est aussi une chaine de caractere)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

42

Si ce que tu veux c'est juste virer le warning, tu peux aussi t'en débarrasser par un typecast explicite : tu mets (char *) devant __func__. Enfin dans ce cas précis c'est clairement pas du tout la bonne solution, hein, je dis ça juste pour information happy.
Là c'est vrai que c'est bizarre que __FILE__ ne soit pas déclaré const, sinon...
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

43

C'est normal : __func__ est une vraie variable, un peu comme si tu faisais :
int main() {
  static const char __func__[] = "main";
  ...
}


En revanche, __FILE__ et __LINE__ sont de simples #define, donc mafonction(__FILE__) est équivalent à mafonction("main.c"), et comme en principe les chaînes sont des char *, pas des const char * (même si je crois que GCC a une option pour), ça explique que tu n'aies pas de warning.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

44

ah, je croyais qu'une chaîne sous forme de "literal" était automatiquement un const char*
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

45

Si il y a des warning, ce n'est pas pour rien. pour supprimer des warnings, le mieux, c'est de corriger les erreurs; du genre la fonction renvoit un "unsigned int" et on renvoit -1... Si des warnings ne sont pas corrigés, cela peut conduire à des effets de bord voire des crashs. c'est bien connu.
There is no spoon.