Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Bug in der VM bei shl Kategorie: Programmierung (von Olaf - 15.03.2004 21:35)
Ich nutze:
C-Control II Station, OSOPT_V2
Moin,

als Warnung an alle c2 Programmierer. Ich habe einen Bug in der VM beim
linksschiebe-Operator "shl" entdeckt .

Wird als rechter operand eine Variable angegeben die von einem kürzeren Typ ist,
so ist das Ergebnis nicht korrekt.
Lä�t sich mit folgendem einfachen Beispiel leicht verifizieren.


thread main
{
 long l;
 byte i;
 
 for i=0 ... 32
 {
   l = 1 shl i;
 }

}

bei i=13 ergibt sich   0b00000000000000000010000000000000
bei i=14 ergibt sich   0b00000000000000000100000000000000
bei i=15 ergibt sich   0b11111111111111111000000000000000
bei i>=16 ergibt sich 0b00000000000000000000000000000000

Gibt man als rechten operanten eine Konstante oder wenn i als long deklariert wird funktioniert es

l=1 shl 15 ;  ergibt den korrekten Wert.

Wei�t jemand ob es für diesen Bug einen fix gibt ?

GruÃ?
Olaf


    Antwort schreiben


Antworten:

Das ist kein Bug (von André H. - 15.03.2004 22:45)
    Re: Das ist kein Bug (von Olaf - 21.03.2004 9:50)
        Re: Das ist kein Bug (von Dietmar Weickert - 22.03.2004 13:51)
        Re: Das ist kein Bug (von André H. - 21.03.2004 12:56)