1

Petit problème sans gravité, mais je me demande si il y a une explication logique (erreur de ma part) ou bien si c'est un bug de TIGCC :

J'ai une fonction en ASM (de PpHd) pour obtenir la valeur du contraste :
unsigned char *tst_cntr(void);
asm("tst_cntr:
moveq #4,%d0
trap #9
rts"
);

Placée hors de main, elle fonctionne sans problème. Mais si je veux la déclarer à l'interieur de main, alors j'ai deux possibilités :
- Soit je la déclare comme "auto" : auto unsigned char *tst_cntr(void); et à ce moment là, TIGCC plante à la compilation (il se gele, ya plus qu'à faire Ctrl+Alt+Suppr).
- Soit je ne la déclare pas, je la défini directement, mais à ce moment là le prog plante dès le lancement : Adress Error (alors que la fonction n'est utilisée qu'à la fin).

Des avis ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

C'est normal.
1. Il faut mettre auto pour les prototypes de fonctions embriquées.
2. Tu ne peux pas créer des fonctions embriquées en assembleur, il faut mettre ta fonction en dehors de _main.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Et pour le plantage à la place d'une erreur compréhensible, c'est:
1. un bogue de GCC qui crée une erreur interne et
2. un bogue de l'IDE qui fait tout planter quand GCC crée une erreur interne.
Le 2. sera corrigé dans la prochaine bêta, pour le 1., j'ai bien peur que non.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

4

Ok, ct juste pour savoir smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)