mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-03 05:07:29 +01:00
* fixed hightree generation when loading highSYM
This commit is contained in:
parent
ebee6997a8
commit
1c129626c0
@ -57,29 +57,27 @@ implementation
|
|||||||
var
|
var
|
||||||
len : longint;
|
len : longint;
|
||||||
st : psymtable;
|
st : psymtable;
|
||||||
|
loadconst : boolean;
|
||||||
begin
|
begin
|
||||||
if assigned(p^.hightree) then
|
if assigned(p^.hightree) then
|
||||||
exit;
|
exit;
|
||||||
len:=-1;
|
len:=-1;
|
||||||
|
loadconst:=true;
|
||||||
case p^.left^.resulttype^.deftype of
|
case p^.left^.resulttype^.deftype of
|
||||||
arraydef :
|
arraydef :
|
||||||
begin
|
begin
|
||||||
if is_open_array(p^.left^.resulttype) or
|
if is_open_array(p^.left^.resulttype) or
|
||||||
is_array_of_const(p^.left^.resulttype) then
|
is_array_of_const(p^.left^.resulttype) then
|
||||||
begin
|
begin
|
||||||
st:=p^.left^.symtable;
|
st:=p^.left^.symtable;
|
||||||
getsymonlyin(st,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
getsymonlyin(st,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
||||||
p^.hightree:=genloadnode(pvarsym(srsym),st);
|
p^.hightree:=genloadnode(pvarsym(srsym),st);
|
||||||
|
loadconst:=false;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
{ this is an empty constructor
|
{ this is an empty constructor }
|
||||||
if (parraydef(p^.left^.resulttype)^.highrange=-1)
|
len:=parraydef(p^.left^.resulttype)^.highrange-
|
||||||
and (parraydef(p^.left^.resulttype)^.lowrange=0) then
|
|
||||||
len:=0
|
|
||||||
else
|
|
||||||
}
|
|
||||||
len:=parraydef(p^.left^.resulttype)^.highrange-
|
|
||||||
parraydef(p^.left^.resulttype)^.lowrange;
|
parraydef(p^.left^.resulttype)^.lowrange;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -92,6 +90,7 @@ implementation
|
|||||||
st:=p^.left^.symtable;
|
st:=p^.left^.symtable;
|
||||||
getsymonlyin(st,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
getsymonlyin(st,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
||||||
p^.hightree:=genloadnode(pvarsym(srsym),st);
|
p^.hightree:=genloadnode(pvarsym(srsym),st);
|
||||||
|
loadconst:=false;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
len:=pstringdef(p^.left^.resulttype)^.len;
|
len:=pstringdef(p^.left^.resulttype)^.len;
|
||||||
@ -111,14 +110,15 @@ implementation
|
|||||||
genordinalconstnode(1,s32bitdef));
|
genordinalconstnode(1,s32bitdef));
|
||||||
firstpass(p^.hightree);
|
firstpass(p^.hightree);
|
||||||
p^.hightree:=gentypeconvnode(p^.hightree,s32bitdef);
|
p^.hightree:=gentypeconvnode(p^.hightree,s32bitdef);
|
||||||
|
loadconst:=false;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
len:=0;
|
len:=0;
|
||||||
end;
|
end;
|
||||||
{ if len>=0 then }
|
if loadconst then
|
||||||
p^.hightree:=genordinalconstnode(len,s32bitdef);
|
p^.hightree:=genordinalconstnode(len,s32bitdef);
|
||||||
firstpass(p^.hightree);
|
firstpass(p^.hightree);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1162,7 +1162,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.48 1999-05-27 19:45:13 peter
|
Revision 1.49 1999-05-31 20:34:51 peter
|
||||||
|
* fixed hightree generation when loading highSYM
|
||||||
|
|
||||||
|
Revision 1.48 1999/05/27 19:45:13 peter
|
||||||
* removed oldasm
|
* removed oldasm
|
||||||
* plabel -> pasmlabel
|
* plabel -> pasmlabel
|
||||||
* -a switches to source writing automaticly
|
* -a switches to source writing automaticly
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user