Bug beim Vergleich (>) mit Zahlenwerten (?)

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Bug beim Vergleich (>) mit Zahlenwerten (?)

Beitrag von Euklid »

Hallo Leute!

Habe eben den folgenden, wirklich erstaunlichen Bug beobachtet (Lazarus 0.9.24, FPC 2.2.0, Debian 4.0 etch, 32bit).

Dabei wäre ich froh, wenn mir einige von Euch den bestätigen könnten:

Bei folgender Zeile:

Code: Alles auswählen

if 9223372036854775820>9223372036854775808 then showmessage('Test bestanden');


erscheint 'Test bestanden'. Bis hier hin ist alles in Ordnung, denn die rechte Seite ist offensichtlich tatsächlich kleiner als die linke.
Erniedrigt man die rechte Seite der Ungleichung um 1:

Code: Alles auswählen

if 9223372036854775820>9223372036854775807 then showmessage('Test bestanden');


ist die rechte Seite erst recht kleiner als die linke. Nur ist der FPC offenbar anderer Meinung und die Message 'Test bestanden' wird _nicht_ ausgegeben. Sehr merkwürdig also.

1. Könnt ihr das bestätigen?
2. Was meint ihr: Handelt es sich um einen Bug?

Gruß, Euklid

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Kann ich bestätigen.

Liegt wohl irgendwie an der Wahl der Datentypen, da die Zahlen sich ja genau um die 64Bit-Integer-Grenze bewegen.

Bei der ersten sind beide Zahlen größer als ein signed 64Bit integer, beim zweiten Test müsste der zweite Wert als 64Bit-integer noch interpretiert werden.

Ich würde fast sagen, da liegt das Problem, da die anderen zahlen intern als anderer Typ gehandhabt werden (?). Da das beim ersten Beispiel auf beide Werte zutrifft, passt der Vergleich, währenddessen beim zweiten Beispiel wohl die zweite zahl als 64Bit-integer interpretiert wird und erstere als was anderes???
(Blöde Hypothese :lol: )

>>Bug
Johannes

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Christian hat freundlicherweise den "Bug" in den Channel #lazarus-ide gepostet.

Ergebnis: Der Bug ist in Version fpc 2.3.1 nicht mehr vorhanden.

Danke an alle, die sich Gedanken gemacht haben!

Euklid

Antworten