Optimizer Fehler

Lschreyer
Schreiberling
Avatar
Geschlecht: keine Angabe
Beiträge: 527
Dabei seit: 02 / 2007
Betreff:

Optimizer Fehler

 · 
Gepostet: 17.03.2021 - 17:03 Uhr  ·  #1
Ich habe nach langem suchen einen Fehler gefunden, der nur bei Verwenden des Optimizers auftritt.
Es ist sehr seltsam:

Ich habe einen Record als Datenstruktur wie folgt definiert:
Recdatarec = record
Flightno: byte;
GOffSet : integer;
PPAD, PMIN: longword;
BtempPad: int64;
preflightpages, CurPage, Startpage, Endpage, recswritten, dpp: word;
end;



Ich habe eine Function:

function AnalyzeFlightdata(fn: byte; var pmin: float; var myppad: longword): byte;
var MYRD: Recdatarec;
test: Longword;
begin
// MYRD aus Flashlesen
PageToBuffer(0, 0);
ReadFromBuffer(0, @MYRD, 0, Sizeof(MYRD));
......
......
myppad:=myrec.ppad;
......
......
end;


Wenn ich ohne Optimizer arbeite klappt das problemlos.

Schalte ich den Optimizer ein werden die Felder myrd.pmin und myrd.ppad des Datensatzes mit Müll überschrieben. Ich konnte es eingrenzen auf die Zuweisung von "myppad:=myrd.ppad;"
Ersetze ich ppad durch eine lokale Variable "test" klappt es auch,
test:=myrd.ppad; läuft ohne Fehler!

Nur wenn ich die als VAR definierte Variable myppad nehme kommt der Fehler.


Wo ist der Fehler?

Viele Grüße,

Louis
Merlin
Administrator
Avatar
Geschlecht:
Alter: 26
Beiträge: 1476
Dabei seit: 03 / 2005
Betreff:

Re: Optimizer Fehler

 · 
Gepostet: 17.03.2021 - 17:10 Uhr  ·  #2
Hello Louis

Please send me via pm the asm and dsm files of the optimised code that fails. I will then look at it and issue an update. If you could also identify the procedure where the failure occurs, that would be a great help.

Thanks

Merlin.
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   50   64 · Page-Gen-Time: 0.026746s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI