Bug in der VM bei shl Kategorie: Programmierung (von Olaf - 15.03.2004 21:35) | ||
| ||
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) |