+ Patches from peter

This commit is contained in:
michael 2001-03-12 12:47:46 +00:00
parent d8abf76f6b
commit fb05310d44
3 changed files with 32 additions and 15 deletions

View File

@ -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

View File

@ -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

View File

@ -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