Je sèche depuis ce matin sur un problème bizarre. Ça doit être
complètement trivial, mais je ne comprend pas. Considérons le code
suivant qui provient d'un analyseur syntaxique que j'ai écrit :
/*
* Test de la présence de l'instruction EXIT dans une boucle
*/
l_element_pile_systeme est un pointeur sur une structure de liste
chaînée qui contient au moins un champ 'suivant' et un champ statique
(char[6]) type_cloture. Je veux simplement que si la variable
entière presence_boucle devient vrai et qu'on n'est pas encore à la fin
de la liste chaîne, on sorte de la boucle.
Ce code _fonctionnait_. Il est actuellement compilé avec gcc-4.4 -O3
(mais je viens de tester -03 et gcc-4.3). Je ne sais plus avec quelle
configuration ça fonctionnait et je ne vois pas ce que j'aurais changé
depuis...
Si quelqu'un avait une idée... Parce que je sèche sur un bout de
code carrément simple et j'ai _honte_...
Cordialement,
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Le 20-10-2009, ? propos de Re: Problème bizarre, -ed- ?crivait dans fr.comp.lang.c :
On 19 oct, 17:55, JKB wrote:
> mais pas sûr que ce soit vrai si il y a des affectations dans > l'expression... Il est possible que ça dépende de l'implémentation, > d'où un changement de comportement quand tu changes de compilateur.
Il n'y a _aucune_ affectation dans l'expression, rien du tout. Le compilo génère un code assembleur dans certains cas avec certaines options de compilation qui proviendrait plus de
Si c'est le cas, oui, c'est un bug du compilateur.
C'est exactement ça. Et ça ne se produit qu'en fonction des fonctions C qui précèdent dans le code source.
Je vais donc clore la discussion qui est plus un problème de compilo qu'un problème de C.
OK.
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.
Le 20-10-2009, ? propos de
Re: Problème bizarre,
-ed- ?crivait dans fr.comp.lang.c :
On 19 oct, 17:55, JKB <knatsc...@koenigsberg.fr> wrote:
> mais pas sûr que ce soit vrai si il y a des affectations dans
> l'expression... Il est possible que ça dépende de l'implémentation,
> d'où un changement de comportement quand tu changes de compilateur.
Il n'y a _aucune_ affectation dans l'expression, rien du tout. Le
compilo génère un code assembleur dans certains cas avec
certaines options de compilation qui proviendrait plus de
Si c'est le cas, oui, c'est un bug du compilateur.
C'est exactement ça. Et ça ne se produit qu'en fonction des
fonctions C qui précèdent dans le code source.
Je vais donc clore la discussion qui est plus un problème de compilo
qu'un problème de C.
OK.
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Le 20-10-2009, ? propos de Re: Problème bizarre, -ed- ?crivait dans fr.comp.lang.c :
On 19 oct, 17:55, JKB wrote:
> mais pas sûr que ce soit vrai si il y a des affectations dans > l'expression... Il est possible que ça dépende de l'implémentation, > d'où un changement de comportement quand tu changes de compilateur.
Il n'y a _aucune_ affectation dans l'expression, rien du tout. Le compilo génère un code assembleur dans certains cas avec certaines options de compilation qui proviendrait plus de
Si c'est le cas, oui, c'est un bug du compilateur.
C'est exactement ça. Et ça ne se produit qu'en fonction des fonctions C qui précèdent dans le code source.
Je vais donc clore la discussion qui est plus un problème de compilo qu'un problème de C.
OK.
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.