BUG du compilo

Postby grumly » Wed May 30, 2007 12:00 am

ATTENTION

J'ai trouvé un bug dans le compilo de Renesas (HEW Version 4.00.03.001)

Celui n'aime pas du tout les caractere spéciaux comme les accents (é,à....) qui sont interdit en C, mais normalement pas dans les commentaires.

Donc si comme moi vous mettez

"int i; // Variable incremtée a chaque it"

vous aurez de probleme comme :

* le debuggeur decale tout d'une ligne a chaque caractere , donc on comprends plus rien on re retrouve avec des point d'arret sur des commentaire, les variable sont pas les bonnes etc....

* J'ai eu une erreur de compile en mettant un #ifdef juste derriere...

grumly
 
Posts: 11
Joined: Fri Jan 17, 2014 4:37 pm

Postby ymasquel » Wed May 30, 2007 12:00 am

Bonjour "Grumly",

Ce n'est pas à proprement parler une bug du compilateur car il n'y a aucune assurance que celui-ci accepte le jeu de caractères accentués, d'ailleurs ce n'est stipulé nulle part et ce qui n'est pas écrit ne peut être considéré comme acquis. Ce n'est pas parce que certains compilateurs les acceptent que cela devient une règle.

Amicalement, Yves.
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3362
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby grumly » Wed May 30, 2007 12:00 am

Ok d'accord, mais la moindre des choses, si le compilo n'accepte pas les caracteres, et bien c'est qu'il le dise, au lieu de merdouiller de de faire n'importe quoi.

Ca evite de chercher pendant des heures !!!

Et ceci di, 100% des compilo que j'ai utiliser dans mon boulot accepte sans soucis ces caracteres dans le commentaire.
grumly
 
Posts: 11
Joined: Fri Jan 17, 2014 4:37 pm

Postby caval » Tue Jun 30, 2009 12:00 am

bonjour
moi je ne comprend pas our le nouveau kit R32C un petit "hello world " que jai mis une semaine a trouver la solution (manque ergonomie)voila un problème: bug?

la boucle for crée une boucle infinie

for(i = 1; i = 5; i= i++)
FFFF0012 FA20 MOV.L #1, R2R0
FFFF0014 FAA0 MOV.L #5, R2R0
FFFF0016 A30C JZ FFFF0023H
{
dummy = i/10;
FFFF0018 B220 MOV.L R2R0, R3R1 <----errreur
FFFF001A 3F11080A DIVU.L #0000000AH, R2R0
FFFF001E 52 MOV.L R3R1, R2R0
FFFF001F F221 ADD.L #1, R3R1
FFFF0021 73F2 JMP.B FFFF0014H
}
a voir'
caval
 
Posts: 5
Joined: Fri Jan 17, 2014 4:38 pm

Postby sda » Wed Jul 01, 2009 12:00 am

salut,

si tu as vraiment écrit " for(i = 1; i = 5; i= i++) " , alors c'est normal d'avoir une boucle infinie.
Tu aurais due écrire :

for(i = 1; i == 5; i++)

en fait a chaque boucle au moment du test, la variable i est mise à la valeur 5 et ceci renvoi vrai, donc boucle infini.
sda
 
Posts: 24
Joined: Fri Jan 17, 2014 4:38 pm

Postby nlc » Wed Jul 01, 2009 12:00 am

SDATu aurais due écrire :

for(i = 1; i == 5; i++)


Ca, ca ne marchera pas non plus, car dès la première boucle, le test sera faux (i==5), et le corps du for ne sera pas executé !

pour executer 5 fois la boucle, il faut faire :

for(i = 1; i <= 5; i++)

ou

for(i = 0; i < 5; i++)
nlc
 
Posts: 109
Joined: Fri Jan 17, 2014 4:37 pm

Postby sda » Wed Jul 01, 2009 12:00 am

Exact, comme quoi avant de regarder les bugs des autres j'aurais due relire ma copie...
sda
 
Posts: 24
Joined: Fri Jan 17, 2014 4:38 pm

Postby caval » Wed Jul 01, 2009 12:00 am

ça ne change rien ! même avec static unsigned int i;


pour info les automates twido de chez schneider possède un M16C/62P
caval
 
Posts: 5
Joined: Fri Jan 17, 2014 4:38 pm

Postby caval » Wed Jul 01, 2009 12:00 am

c'est bon j'avais fait une mauvaise interpretation d'un tuto d'elektor ou c'etait marqué:
for(i = 1; i < 5;i=i*10)

et doc i=i++ ne marche pas dans cette condition
merci
caval
 
Posts: 5
Joined: Fri Jan 17, 2014 4:38 pm


Return to R8C/13 (01-2006)

Who is online

Users browsing this forum: No registered users and 2 guests