Bug bei binärem ODER?
Re: Bug bei binärem ODER?
Danke für die Bestätigung! 
Never change a running system - Never run a changed system!
(PB 6.21 [x86])
(PB 6.21 [x86])
Re: Bug bei binärem ODER?
Wo ist da ein Bug, wenn er versucht das Ergebnis von aus einem .b und einem .q in ein .b zu schreiben? Wie soll da vernünftiges rauskommen?mk-soft hat geschrieben:Ist definitiv ein Bug...
War aber schon mal für die x86 Version vor Ewigkeiten gemeldet worden.
Re: Bug bei binärem ODER?
Sieh dir mein Beispiel von 10:02 an!Josh hat geschrieben:Wo ist da ein Bug, wenn er versucht das Ergebnis von aus einem .b und einem .q in ein .b zu schreiben? Was soll da vernünftiges rauskommen?mk-soft hat geschrieben:Ist definitiv ein Bug...
War aber schon mal für die x86 Version vor Ewigkeiten gemeldet worden.
Hier schreibe ich in ein Long - und es tritt ebenfalls der Fehler auf.
Unabhängig davon arbeite ich hier auf Bitebene bei dem der Typ irrelevant ist, so lange das Ziel breit genug ist.
Never change a running system - Never run a changed system!
(PB 6.21 [x86])
(PB 6.21 [x86])
Re: Bug bei binärem ODER?
Ich vermute einen Fehler bei der internen Endian-Umschaltung. Hierzu müsste ich mal das Verhalten bei 64Bit testen..
Never change a running system - Never run a changed system!
(PB 6.21 [x86])
(PB 6.21 [x86])
Re: Bug bei binärem ODER?
Kommt 1 raus, wie erwartet. Sehe an dem Ergebnis keinen Fehler.techniker hat geschrieben:Sieh dir mein Beispiel von 10:02 an!
Hier schreibe ich in ein Long - und es tritt ebenfalls der Fehler auf.
Das Ziel ist eben nicht breit genug. Was rede ich denn die ganze Zeit.techniker hat geschrieben:Unabhängig davon arbeite ich hier auf Bitebene bei dem der Typ irrelevant ist, so lange das Ziel breit genug ist.
Re: Bug bei binärem ODER?
Hast auch mal den Datentyp von Variable b geändert und durch den x86-Compiler gejagt?Josh hat geschrieben: Kommt 1 raus, wie erwartet. Sehe an dem Ergebnis keinen Fehler.
Du verstehst es nicht..?!? Es betrifft bei x86 nur den Typ Quad!Josh hat geschrieben:Das Ziel ist eben nicht breit genug. Was rede ich denn die ganze Zeit.
Es hat nichts mit der breite des Ziels zu tun, da sowieso nur das LSB weitergegeben - der Rest wird verworfen!
(und dabei ist/sollte es egal (sein), ob 1 Bit oder 63Bit verworfen werden).
Never change a running system - Never run a changed system!
(PB 6.21 [x86])
(PB 6.21 [x86])
Re: Bug bei binärem ODER?
Wenn du den Datentyp von b auf .q änderst, dann musst du natürlich die Ergebnisvariable c auch auf .q ändern und alles ist ok.techniker hat geschrieben:Hast auch mal den Datentyp von Variable b geändert und durch den x86-Compiler gejagt?
Nein, du verstehst es nicht, wie man ja an obigen Punkt sieht. Da willst du wieder ein .q in ein .l schreiben und wunderst dich, dass Blödsinn raus kommt.techniker hat geschrieben:Du verstehst es nicht..?!? Es betrifft bei x86 nur den Typ Quad!
Es hat nichts mit der breite des Ziels zu tun, da sowieso nur das LSB weitergegeben - der Rest wird verworfen!
(und dabei ist/sollte es egal (sein), ob 1 Bit oder 63Bit verworfen werden).
Noch mal, wenn du einen falschen Code schreibst und das Ergebnis in machen Fällen trotzdem richtig ist, heißt das noch lange nicht, dass dein Code deswegen richtig ist. Lies dir bitte noch mal mein Zitat aus der Hilfe in meinem ersten Betrag durch. Damit ist eigentlich alles gesagt.
Re: Bug bei binärem ODER?
Das Zitat sagt nur aus, dass eine Bitoperation ohne Zielzuweisung das Ergebnis in die erste (linke) Variable ablegt. Nicht mehr und nicht weniger.Josh hat geschrieben:Lies dir bitte noch mal mein Zitat aus der Hilfe in meinem ersten Betrag durch. Damit ist eigentlich alles gesagt.
Das hat absolut nichts mit der breite des Datentyps zu tun. Derartige Operationen sind in anderen Sprachen (z.B. C) ebenfalls üblich, zulässig und liefern das korrekte Ergebnis. Nur hier bei der Benutzung von Quad und dem x86-Compiler nicht..!
Never change a running system - Never run a changed system!
(PB 6.21 [x86])
(PB 6.21 [x86])
Re: Bug bei binärem ODER?
Natürlich hat das was mit der Breite des Datentyps zu tun. Wenn deine erste (linke) Variable ein .b ist, dann kannst du nicht erwarten, dass diese mit einem .q umgehen kann.techniker hat geschrieben:Das Zitat sagt nur aus, dass eine Bitoperation ohne Zielzuweisung das Ergebnis in die erste (linke) Variable ablegt. Nicht mehr und nicht weniger.
Das hat absolut nichts mit der breite des Datentyps zu tun. Derartige Operationen sind in anderen Sprachen (z.B. C) ebenfalls üblich, zulässig und liefern das korrekte Ergebnis. Nur hier bei der Benutzung von Quad und dem x86-Compiler nicht..!
Genau das gleiche wenn du eine Ergebnisvariable vom Typ l. hast, dann kannst du auch nicht erwarten, dass diese mit einem .q umgehen kann.
Re: Bug bei binärem ODER?
Wo steht das?Josh hat geschrieben:Natürlich hat das was mit der Breite des Datentyps zu tun. Wenn deine erste (linke) Variable ein .b ist, dann kannst du nicht erwarten, dass diese mit einem .q umgehen kann.
Genau das gleiche wenn du eine Ergebnisvariable vom Typ l. hast, dann kannst du auch nicht erwarten, dass diese mit einem .q umgehen kann.
Bzw. wie Caste ich den Typ dann mit PB?
Wenn dies wirklich so sein sollte, dann ist dies ein gravierender Nachteil (und meiner Ansicht nach ein Bug) von PB, das ich so noch nie bei einer anderen Sprache gesehen habe!
Never change a running system - Never run a changed system!
(PB 6.21 [x86])
(PB 6.21 [x86])