Hi
Ich habe folgende Funktion:
mein g++ 4.3.1 macht da folgendes raus:
Warum?
Ich habe doch durch volatile angegeben, dass sich der Wert von NewKOT unabhängig von der Funktion ändern kann.
Das sieht ohnehin so aus, als würde er NewKOT als Konstant annehmen, da der Wert nicht einmal aus dem Speicher geholt wird.
ps.: meine Compiler-einstellungen
[/i]COMPILERSETTINGS="-I $HEADERS -DCPU=586 -m32 -c -Os -nostdlib -fno-builtin -fno-rtti -fno-exceptions"[/i]
Ich habe folgende Funktion:
Code: [Auswählen]
volatile bool NewKOT = false; //global
void WaitForKOT_()
{
while(!NewKOT); //NewKOT wird beim interrup gesetzt
return;
}mein g++ 4.3.1 macht da folgendes raus:
Code: [Auswählen]
00000175 <_ZN3KOT11WaitForKOT_Ev>:
175: 55 push %ebp
176: 89 e5 mov %esp,%ebp
178: a0 00 00 00 00 mov 0x0,%al
17d: 84 c0 test %al,%al
17f: 74 f7 je 178 <_ZN3KOT11WaitForKOT_Ev+0x3>
181: 5d pop %ebp
182: c3 retWarum?
Ich habe doch durch volatile angegeben, dass sich der Wert von NewKOT unabhängig von der Funktion ändern kann.
Das sieht ohnehin so aus, als würde er NewKOT als Konstant annehmen, da der Wert nicht einmal aus dem Speicher geholt wird.
ps.: meine Compiler-einstellungen
[/i]COMPILERSETTINGS="-I $HEADERS -DCPU=586 -m32 -c -Os -nostdlib -fno-builtin -fno-rtti -fno-exceptions"[/i]

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert

(bin die AT&T-Syntax nicht gewohnt)