mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 15:29:14 +02:00
+ Patches from peter
This commit is contained in:
parent
d8abf76f6b
commit
fb05310d44
@ -428,6 +428,7 @@ interface
|
|||||||
len : longint;
|
len : longint;
|
||||||
st : psymtable;
|
st : psymtable;
|
||||||
loadconst : boolean;
|
loadconst : boolean;
|
||||||
|
srsym : psym;
|
||||||
begin
|
begin
|
||||||
if assigned(hightree) then
|
if assigned(hightree) then
|
||||||
exit;
|
exit;
|
||||||
@ -440,7 +441,7 @@ interface
|
|||||||
is_array_of_const(left.resulttype) then
|
is_array_of_const(left.resulttype) then
|
||||||
begin
|
begin
|
||||||
st:=tloadnode(left).symtable;
|
st:=tloadnode(left).symtable;
|
||||||
getsymonlyin(st,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
srsym:=searchsymonlyin(st,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
||||||
hightree:=genloadnode(pvarsym(srsym),st);
|
hightree:=genloadnode(pvarsym(srsym),st);
|
||||||
loadconst:=false;
|
loadconst:=false;
|
||||||
end
|
end
|
||||||
@ -458,7 +459,7 @@ interface
|
|||||||
if is_open_string(left.resulttype) then
|
if is_open_string(left.resulttype) then
|
||||||
begin
|
begin
|
||||||
st:=tloadnode(left).symtable;
|
st:=tloadnode(left).symtable;
|
||||||
getsymonlyin(st,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
srsym:=searchsymonlyin(st,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
||||||
hightree:=genloadnode(pvarsym(srsym),st);
|
hightree:=genloadnode(pvarsym(srsym),st);
|
||||||
loadconst:=false;
|
loadconst:=false;
|
||||||
end
|
end
|
||||||
@ -647,6 +648,7 @@ interface
|
|||||||
is_const : boolean;
|
is_const : boolean;
|
||||||
i : longint;
|
i : longint;
|
||||||
bestord : porddef;
|
bestord : porddef;
|
||||||
|
srsym : psym;
|
||||||
begin
|
begin
|
||||||
pass_1:=nil;
|
pass_1:=nil;
|
||||||
{ release registers! }
|
{ release registers! }
|
||||||
@ -754,7 +756,7 @@ interface
|
|||||||
while assigned(symt^.next) and not assigned(srsym) do
|
while assigned(symt^.next) and not assigned(srsym) do
|
||||||
begin
|
begin
|
||||||
symt:=symt^.next;
|
symt:=symt^.next;
|
||||||
getsymonlyin(symt,actprocsym^.name);
|
srsym:=searchsymonlyin(symt,actprocsym^.name);
|
||||||
if assigned(srsym) then
|
if assigned(srsym) then
|
||||||
if srsym^.typ<>procsym then
|
if srsym^.typ<>procsym then
|
||||||
begin
|
begin
|
||||||
@ -1568,7 +1570,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.23 2001-02-26 19:44:52 peter
|
Revision 1.24 2001-03-12 12:47:46 michael
|
||||||
|
+ Patches from peter
|
||||||
|
|
||||||
|
Revision 1.23 2001/02/26 19:44:52 peter
|
||||||
* merged generic m68k updates from fixes branch
|
* merged generic m68k updates from fixes branch
|
||||||
|
|
||||||
Revision 1.22 2001/01/08 21:46:46 peter
|
Revision 1.22 2001/01/08 21:46:46 peter
|
||||||
|
@ -101,6 +101,7 @@ implementation
|
|||||||
p1,hp,hpp : tnode;
|
p1,hp,hpp : tnode;
|
||||||
ppn : tcallparanode;
|
ppn : tcallparanode;
|
||||||
dummycoll: tparaitem;
|
dummycoll: tparaitem;
|
||||||
|
srsym : psym;
|
||||||
{$ifndef NOCOLONCHECK}
|
{$ifndef NOCOLONCHECK}
|
||||||
frac_para,length_para : tnode;
|
frac_para,length_para : tnode;
|
||||||
{$endif ndef NOCOLONCHECK}
|
{$endif ndef NOCOLONCHECK}
|
||||||
@ -477,7 +478,7 @@ implementation
|
|||||||
set_varstate(left,false);
|
set_varstate(left,false);
|
||||||
if push_high_param(left.resulttype) then
|
if push_high_param(left.resulttype) then
|
||||||
begin
|
begin
|
||||||
getsymonlyin(tloadnode(left).symtable,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
srsym:=searchsymonlyin(tloadnode(left).symtable,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
||||||
hp:=caddnode.create(addn,genloadnode(pvarsym(srsym),tloadnode(left).symtable),
|
hp:=caddnode.create(addn,genloadnode(pvarsym(srsym),tloadnode(left).symtable),
|
||||||
genordinalconstnode(1,s32bitdef));
|
genordinalconstnode(1,s32bitdef));
|
||||||
if (left.resulttype^.deftype=arraydef) and
|
if (left.resulttype^.deftype=arraydef) and
|
||||||
@ -1055,7 +1056,7 @@ implementation
|
|||||||
{ firstcallparan(left,nil);
|
{ firstcallparan(left,nil);
|
||||||
already done in firstcalln }
|
already done in firstcalln }
|
||||||
{ now we know the type of buffer }
|
{ now we know the type of buffer }
|
||||||
getsymonlyin(systemunit,'SETTEXTBUF');
|
srsym:=searchsymonlyin(systemunit,'SETTEXTBUF');
|
||||||
hp:=gencallnode(pprocsym(srsym),systemunit);
|
hp:=gencallnode(pprocsym(srsym),systemunit);
|
||||||
tcallnode(hp).left:=gencallparanode(
|
tcallnode(hp).left:=gencallparanode(
|
||||||
genordinalconstnode(tcallparanode(left).left.resulttype^.size,s32bitdef),left);
|
genordinalconstnode(tcallparanode(left).left.resulttype^.size,s32bitdef),left);
|
||||||
@ -1337,7 +1338,7 @@ implementation
|
|||||||
if is_open_array(left.resulttype) or
|
if is_open_array(left.resulttype) or
|
||||||
is_array_of_const(left.resulttype) then
|
is_array_of_const(left.resulttype) then
|
||||||
begin
|
begin
|
||||||
getsymonlyin(tloadnode(left).symtable,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
srsym:=searchsymonlyin(tloadnode(left).symtable,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
||||||
hp:=genloadnode(pvarsym(srsym),tloadnode(left).symtable);
|
hp:=genloadnode(pvarsym(srsym),tloadnode(left).symtable);
|
||||||
firstpass(hp);
|
firstpass(hp);
|
||||||
result:=hp;
|
result:=hp;
|
||||||
@ -1363,7 +1364,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
if is_open_string(left.resulttype) then
|
if is_open_string(left.resulttype) then
|
||||||
begin
|
begin
|
||||||
getsymonlyin(tloadnode(left).symtable,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
srsym:=searchsymonlyin(tloadnode(left).symtable,'high'+pvarsym(tloadnode(left).symtableentry)^.name);
|
||||||
hp:=genloadnode(pvarsym(srsym),tloadnode(left).symtable);
|
hp:=genloadnode(pvarsym(srsym),tloadnode(left).symtable);
|
||||||
firstpass(hp);
|
firstpass(hp);
|
||||||
result:=hp;
|
result:=hp;
|
||||||
@ -1536,7 +1537,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.29 2001-03-03 12:38:08 jonas
|
Revision 1.30 2001-03-12 12:47:46 michael
|
||||||
|
+ Patches from peter
|
||||||
|
|
||||||
|
Revision 1.29 2001/03/03 12:38:08 jonas
|
||||||
* fixed low() for signed types < 64bit
|
* fixed low() for signed types < 64bit
|
||||||
|
|
||||||
Revision 1.28 2001/02/26 19:44:53 peter
|
Revision 1.28 2001/02/26 19:44:53 peter
|
||||||
|
@ -102,12 +102,17 @@ implementation
|
|||||||
if assigned(srsym) and
|
if assigned(srsym) and
|
||||||
(srsym^.typ=unitsym) then
|
(srsym^.typ=unitsym) then
|
||||||
begin
|
begin
|
||||||
consume(_POINT);
|
|
||||||
srsym:=searchsymonlyin(punitsym(srsym)^.unitsymtable,pattern);
|
|
||||||
pos:=akttokenpos;
|
|
||||||
s:=pattern;
|
|
||||||
consume(_ID);
|
|
||||||
is_unit_specific:=true;
|
is_unit_specific:=true;
|
||||||
|
consume(_POINT);
|
||||||
|
if srsym^.owner^.unitid=0 then
|
||||||
|
begin
|
||||||
|
srsym:=searchsymonlyin(punitsym(srsym)^.unitsymtable,pattern);
|
||||||
|
pos:=akttokenpos;
|
||||||
|
s:=pattern;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
srsym:=nil;
|
||||||
|
consume(_ID);
|
||||||
end;
|
end;
|
||||||
{ are we parsing a possible forward def ? }
|
{ are we parsing a possible forward def ? }
|
||||||
if isforwarddef and
|
if isforwarddef and
|
||||||
@ -579,7 +584,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.18 2001-03-11 22:58:50 peter
|
Revision 1.19 2001-03-12 12:49:01 michael
|
||||||
|
+ Patches from peter
|
||||||
|
|
||||||
|
Revision 1.18 2001/03/11 22:58:50 peter
|
||||||
* getsym redesign, removed the globals srsym,srsymtable
|
* getsym redesign, removed the globals srsym,srsymtable
|
||||||
|
|
||||||
Revision 1.17 2000/12/07 17:19:43 jonas
|
Revision 1.17 2000/12/07 17:19:43 jonas
|
||||||
|
Loading…
Reference in New Issue
Block a user