mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 01:09:31 +02:00
+ Patches from peter
This commit is contained in:
parent
d8abf76f6b
commit
fb05310d44
@ -428,6 +428,7 @@ interface
|
||||
len : longint;
|
||||
st : psymtable;
|
||||
loadconst : boolean;
|
||||
srsym : psym;
|
||||
begin
|
||||
if assigned(hightree) then
|
||||
exit;
|
||||
@ -440,7 +441,7 @@ interface
|
||||
is_array_of_const(left.resulttype) then
|
||||
begin
|
||||
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);
|
||||
loadconst:=false;
|
||||
end
|
||||
@ -458,7 +459,7 @@ interface
|
||||
if is_open_string(left.resulttype) then
|
||||
begin
|
||||
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);
|
||||
loadconst:=false;
|
||||
end
|
||||
@ -647,6 +648,7 @@ interface
|
||||
is_const : boolean;
|
||||
i : longint;
|
||||
bestord : porddef;
|
||||
srsym : psym;
|
||||
begin
|
||||
pass_1:=nil;
|
||||
{ release registers! }
|
||||
@ -754,7 +756,7 @@ interface
|
||||
while assigned(symt^.next) and not assigned(srsym) do
|
||||
begin
|
||||
symt:=symt^.next;
|
||||
getsymonlyin(symt,actprocsym^.name);
|
||||
srsym:=searchsymonlyin(symt,actprocsym^.name);
|
||||
if assigned(srsym) then
|
||||
if srsym^.typ<>procsym then
|
||||
begin
|
||||
@ -1568,7 +1570,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.22 2001/01/08 21:46:46 peter
|
||||
|
@ -101,6 +101,7 @@ implementation
|
||||
p1,hp,hpp : tnode;
|
||||
ppn : tcallparanode;
|
||||
dummycoll: tparaitem;
|
||||
srsym : psym;
|
||||
{$ifndef NOCOLONCHECK}
|
||||
frac_para,length_para : tnode;
|
||||
{$endif ndef NOCOLONCHECK}
|
||||
@ -477,7 +478,7 @@ implementation
|
||||
set_varstate(left,false);
|
||||
if push_high_param(left.resulttype) then
|
||||
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),
|
||||
genordinalconstnode(1,s32bitdef));
|
||||
if (left.resulttype^.deftype=arraydef) and
|
||||
@ -1055,7 +1056,7 @@ implementation
|
||||
{ firstcallparan(left,nil);
|
||||
already done in firstcalln }
|
||||
{ now we know the type of buffer }
|
||||
getsymonlyin(systemunit,'SETTEXTBUF');
|
||||
srsym:=searchsymonlyin(systemunit,'SETTEXTBUF');
|
||||
hp:=gencallnode(pprocsym(srsym),systemunit);
|
||||
tcallnode(hp).left:=gencallparanode(
|
||||
genordinalconstnode(tcallparanode(left).left.resulttype^.size,s32bitdef),left);
|
||||
@ -1337,7 +1338,7 @@ implementation
|
||||
if is_open_array(left.resulttype) or
|
||||
is_array_of_const(left.resulttype) then
|
||||
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);
|
||||
firstpass(hp);
|
||||
result:=hp;
|
||||
@ -1363,7 +1364,7 @@ implementation
|
||||
begin
|
||||
if is_open_string(left.resulttype) then
|
||||
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);
|
||||
firstpass(hp);
|
||||
result:=hp;
|
||||
@ -1536,7 +1537,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.28 2001/02/26 19:44:53 peter
|
||||
|
@ -102,12 +102,17 @@ implementation
|
||||
if assigned(srsym) and
|
||||
(srsym^.typ=unitsym) then
|
||||
begin
|
||||
consume(_POINT);
|
||||
srsym:=searchsymonlyin(punitsym(srsym)^.unitsymtable,pattern);
|
||||
pos:=akttokenpos;
|
||||
s:=pattern;
|
||||
consume(_ID);
|
||||
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;
|
||||
{ are we parsing a possible forward def ? }
|
||||
if isforwarddef and
|
||||
@ -579,7 +584,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.17 2000/12/07 17:19:43 jonas
|
||||
|
Loading…
Reference in New Issue
Block a user