Optimizer Fehler

Lschreyer
Schreiberling
Avatar
Gender: n/a
Posts: 527
Registered: 02 / 2007
Subject:

Optimizer Fehler

 · 
Posted: 17.03.2021 - 17:03  ·  #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
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: Optimizer Fehler

 · 
Posted: 17.03.2021 - 17:10  ·  #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.
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   50   64 · Page-Gen-Time: 0.055013s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI