mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 17:19:32 +02:00
+ also take the segment portion of the address in lnfodwrf.ParseCompilationUnit
git-svn-id: trunk@39067 -
This commit is contained in:
parent
4ce5db5188
commit
1d3ad2b078
@ -150,9 +150,7 @@ type
|
||||
{ state record for the line info state machine }
|
||||
TMachineState = record
|
||||
address : QWord;
|
||||
{$ifdef CPUI8086}
|
||||
segment : Word;
|
||||
{$endif CPUI8086}
|
||||
segment : TSegment;
|
||||
file_id : DWord;
|
||||
line : QWord;
|
||||
column : DWord;
|
||||
@ -565,9 +563,7 @@ procedure InitStateRegisters(var state : TMachineState; const aIs_Stmt : Bool8);
|
||||
begin
|
||||
with state do begin
|
||||
address := 0;
|
||||
{$ifdef CPUI8086}
|
||||
segment := 0;
|
||||
{$endif CPUI8086}
|
||||
file_id := 1;
|
||||
line := 1;
|
||||
column := 0;
|
||||
@ -884,14 +880,18 @@ begin
|
||||
DEBUG_COMMENT ' epilouge_begin = ', state.epilouge_begin, ' isa = ', state.isa);
|
||||
|
||||
if (first_row) then begin
|
||||
if (state.address > addr) then
|
||||
if (state.segment > segment) or
|
||||
((state.segment = segment) and
|
||||
(state.address > addr)) then
|
||||
break;
|
||||
first_row := false;
|
||||
end;
|
||||
|
||||
{ when we have found the address we need to return the previous
|
||||
line because that contains the call instruction }
|
||||
if (state.address >= addr) then
|
||||
if (state.segment > segment) or
|
||||
((state.segment = segment) and
|
||||
(state.address >= addr)) then
|
||||
found:=true
|
||||
else
|
||||
begin
|
||||
|
Loading…
Reference in New Issue
Block a user