mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-02 18:30:33 +02:00
* splitted buildderef and buildderefimpl to fix interface crc
calculation
This commit is contained in:
parent
dacd24d1d0
commit
4a1ecb07d1
@ -209,7 +209,7 @@ interface
|
|||||||
constructor Create;
|
constructor Create;
|
||||||
constructor ppuload(t:taitype;ppufile:tcompilerppufile);virtual;
|
constructor ppuload(t:taitype;ppufile:tcompilerppufile);virtual;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);virtual;
|
procedure ppuwrite(ppufile:tcompilerppufile);virtual;
|
||||||
procedure buildderef;virtual;
|
procedure buildderefimpl;virtual;
|
||||||
procedure derefimpl;virtual;
|
procedure derefimpl;virtual;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -435,7 +435,7 @@ interface
|
|||||||
protected
|
protected
|
||||||
procedure ppuloadoper(ppufile:tcompilerppufile;var o:toper);virtual;abstract;
|
procedure ppuloadoper(ppufile:tcompilerppufile;var o:toper);virtual;abstract;
|
||||||
procedure ppuwriteoper(ppufile:tcompilerppufile;const o:toper);virtual;abstract;
|
procedure ppuwriteoper(ppufile:tcompilerppufile;const o:toper);virtual;abstract;
|
||||||
procedure ppubuildderefoper(var o:toper);virtual;abstract;
|
procedure ppubuildderefimploper(var o:toper);virtual;abstract;
|
||||||
procedure ppuderefoper(var o:toper);virtual;abstract;
|
procedure ppuderefoper(var o:toper);virtual;abstract;
|
||||||
public
|
public
|
||||||
{ Condition flags for instruction }
|
{ Condition flags for instruction }
|
||||||
@ -458,7 +458,7 @@ interface
|
|||||||
function getcopy:TLinkedListItem;override;
|
function getcopy:TLinkedListItem;override;
|
||||||
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
procedure SetCondition(const c:TAsmCond);
|
procedure SetCondition(const c:TAsmCond);
|
||||||
procedure allocate_oper(opers:longint);
|
procedure allocate_oper(opers:longint);
|
||||||
@ -616,7 +616,7 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tai.buildderef;
|
procedure tai.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2014,12 +2014,12 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure taicpu_abstract.buildderef;
|
procedure taicpu_abstract.buildderefimpl;
|
||||||
var
|
var
|
||||||
i : integer;
|
i : integer;
|
||||||
begin
|
begin
|
||||||
for i:=0 to ops-1 do
|
for i:=0 to ops-1 do
|
||||||
ppubuildderefoper(oper[i]^);
|
ppubuildderefimploper(oper[i]^);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -2139,7 +2139,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.46 2003-10-22 20:39:59 peter
|
Revision 1.47 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.46 2003/10/22 20:39:59 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.45 2003/10/21 15:15:35 peter
|
Revision 1.45 2003/10/21 15:15:35 peter
|
||||||
|
@ -281,6 +281,7 @@ interface
|
|||||||
public
|
public
|
||||||
constructor Create(Ablocksize:integer);
|
constructor Create(Ablocksize:integer);
|
||||||
destructor Destroy;override;
|
destructor Destroy;override;
|
||||||
|
procedure reset;
|
||||||
function size:integer;
|
function size:integer;
|
||||||
procedure align(i:integer);
|
procedure align(i:integer);
|
||||||
procedure seek(i:integer);
|
procedure seek(i:integer);
|
||||||
@ -291,6 +292,7 @@ interface
|
|||||||
procedure writestream(f:TCStream);
|
procedure writestream(f:TCStream);
|
||||||
property BlockSize : integer read FBlocksize;
|
property BlockSize : integer read FBlocksize;
|
||||||
property FirstBlock : PDynamicBlock read FFirstBlock;
|
property FirstBlock : PDynamicBlock read FFirstBlock;
|
||||||
|
property Pos : integer read FPosn;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1672,7 +1674,7 @@ end;
|
|||||||
begin
|
begin
|
||||||
hp:=FFirstblock;
|
hp:=FFirstblock;
|
||||||
FFirstblock:=FFirstblock^.Next;
|
FFirstblock:=FFirstblock^.Next;
|
||||||
freemem(hp,blocksize+dynamicblockbasesize);
|
Freemem(hp);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1686,6 +1688,24 @@ end;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tdynamicarray.reset;
|
||||||
|
var
|
||||||
|
hp : pdynamicblock;
|
||||||
|
begin
|
||||||
|
while assigned(FFirstblock) do
|
||||||
|
begin
|
||||||
|
hp:=FFirstblock;
|
||||||
|
FFirstblock:=FFirstblock^.Next;
|
||||||
|
Freemem(hp);
|
||||||
|
end;
|
||||||
|
FPosn:=0;
|
||||||
|
FPosnblock:=nil;
|
||||||
|
FFirstblock:=nil;
|
||||||
|
FLastblock:=nil;
|
||||||
|
grow;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tdynamicarray.grow;
|
procedure tdynamicarray.grow;
|
||||||
var
|
var
|
||||||
nblock : pdynamicblock;
|
nblock : pdynamicblock;
|
||||||
@ -1885,7 +1905,11 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.27 2003-10-22 20:40:00 peter
|
Revision 1.28 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.27 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.26 2003/10/11 16:06:42 florian
|
Revision 1.26 2003/10/11 16:06:42 florian
|
||||||
|
@ -97,6 +97,7 @@ interface
|
|||||||
islibrary : boolean; { if it is a library (win32 dll) }
|
islibrary : boolean; { if it is a library (win32 dll) }
|
||||||
map : punitmap; { mapping of all used units }
|
map : punitmap; { mapping of all used units }
|
||||||
mapsize : longint; { number of units in the map }
|
mapsize : longint; { number of units in the map }
|
||||||
|
derefdataintflen : longint;
|
||||||
derefdata : tdynamicarray;
|
derefdata : tdynamicarray;
|
||||||
globalsymtable, { pointer to the global symtable of this unit }
|
globalsymtable, { pointer to the global symtable of this unit }
|
||||||
localsymtable : tsymtable;{ pointer to the local symtable of this unit }
|
localsymtable : tsymtable;{ pointer to the local symtable of this unit }
|
||||||
@ -383,6 +384,7 @@ implementation
|
|||||||
map:=nil;
|
map:=nil;
|
||||||
mapsize:=0;
|
mapsize:=0;
|
||||||
derefdata:=TDynamicArray.Create(1024);
|
derefdata:=TDynamicArray.Create(1024);
|
||||||
|
derefdataintflen:=0;
|
||||||
globalsymtable:=nil;
|
globalsymtable:=nil;
|
||||||
localsymtable:=nil;
|
localsymtable:=nil;
|
||||||
loaded_from:=LoadedFrom;
|
loaded_from:=LoadedFrom;
|
||||||
@ -524,6 +526,7 @@ implementation
|
|||||||
freemem(map);
|
freemem(map);
|
||||||
map:=nil;
|
map:=nil;
|
||||||
end;
|
end;
|
||||||
|
derefdataintflen:=0;
|
||||||
mapsize:=0;
|
mapsize:=0;
|
||||||
sourcefiles.free;
|
sourcefiles.free;
|
||||||
sourcefiles:=tinputfilemanager.create;
|
sourcefiles:=tinputfilemanager.create;
|
||||||
@ -687,7 +690,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.40 2003-10-22 20:40:00 peter
|
Revision 1.41 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.40 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.39 2003/10/22 15:22:33 peter
|
Revision 1.39 2003/10/22 15:22:33 peter
|
||||||
|
@ -483,11 +483,15 @@ uses
|
|||||||
|
|
||||||
procedure tppumodule.writederefdata;
|
procedure tppumodule.writederefdata;
|
||||||
var
|
var
|
||||||
|
oldcrc : boolean;
|
||||||
len,hlen : longint;
|
len,hlen : longint;
|
||||||
buf : array[0..1023] of byte;
|
buf : array[0..1023] of byte;
|
||||||
begin
|
begin
|
||||||
len:=derefdata.size;
|
if derefdataintflen>derefdata.size then
|
||||||
|
internalerror(200310223);
|
||||||
derefdata.seek(0);
|
derefdata.seek(0);
|
||||||
|
{ Write interface data }
|
||||||
|
len:=derefdataintflen;
|
||||||
while (len>0) do
|
while (len>0) do
|
||||||
begin
|
begin
|
||||||
if len>1024 then
|
if len>1024 then
|
||||||
@ -498,6 +502,23 @@ uses
|
|||||||
ppufile.putdata(buf,hlen);
|
ppufile.putdata(buf,hlen);
|
||||||
dec(len,hlen);
|
dec(len,hlen);
|
||||||
end;
|
end;
|
||||||
|
{ Write implementation data, this does not influence crc }
|
||||||
|
oldcrc:=ppufile.do_crc;
|
||||||
|
ppufile.do_crc:=false;
|
||||||
|
len:=derefdata.size-derefdataintflen;
|
||||||
|
while (len>0) do
|
||||||
|
begin
|
||||||
|
if len>1024 then
|
||||||
|
hlen:=1024
|
||||||
|
else
|
||||||
|
hlen:=len;
|
||||||
|
derefdata.read(buf,hlen);
|
||||||
|
ppufile.putdata(buf,hlen);
|
||||||
|
dec(len,hlen);
|
||||||
|
end;
|
||||||
|
if derefdata.pos<>derefdata.size then
|
||||||
|
internalerror(200310224);
|
||||||
|
ppufile.do_crc:=oldcrc;
|
||||||
ppufile.writeentry(ibderefdata);
|
ppufile.writeentry(ibderefdata);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -870,9 +891,13 @@ uses
|
|||||||
{ we can now derefence all pointers to the implementation parts }
|
{ we can now derefence all pointers to the implementation parts }
|
||||||
oldobjectlibrary:=objectlibrary;
|
oldobjectlibrary:=objectlibrary;
|
||||||
objectlibrary:=librarydata;
|
objectlibrary:=librarydata;
|
||||||
|
aktglobalsymtable:=tstoredsymtable(globalsymtable);
|
||||||
tstoredsymtable(globalsymtable).derefimpl;
|
tstoredsymtable(globalsymtable).derefimpl;
|
||||||
if assigned(localsymtable) then
|
if assigned(localsymtable) then
|
||||||
tstoredsymtable(localsymtable).derefimpl;
|
begin
|
||||||
|
aktstaticsymtable:=tstoredsymtable(localsymtable);
|
||||||
|
tstoredsymtable(localsymtable).derefimpl;
|
||||||
|
end;
|
||||||
objectlibrary:=oldobjectlibrary;
|
objectlibrary:=oldobjectlibrary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -958,11 +983,23 @@ uses
|
|||||||
writelinkcontainer(linkothersharedlibs,iblinkothersharedlibs,true);
|
writelinkcontainer(linkothersharedlibs,iblinkothersharedlibs,true);
|
||||||
ppufile.do_crc:=true;
|
ppufile.do_crc:=true;
|
||||||
|
|
||||||
{ generate and write deref data }
|
{ generate implementation deref data, the interface deref data is
|
||||||
tstoredsymtable(globalsymtable).buildderef;
|
already generated when calculating the interface crc }
|
||||||
|
if (cs_compilesystem in aktmoduleswitches) then
|
||||||
|
begin
|
||||||
|
aktglobalsymtable:=tstoredsymtable(globalsymtable);
|
||||||
|
tstoredsymtable(globalsymtable).buildderef;
|
||||||
|
derefdataintflen:=derefdata.size;
|
||||||
|
end;
|
||||||
|
tstoredsymtable(globalsymtable).buildderefimpl;
|
||||||
if ((flags and uf_local_browser)<>0) and
|
if ((flags and uf_local_browser)<>0) and
|
||||||
assigned(localsymtable) then
|
assigned(localsymtable) then
|
||||||
tstoredsymtable(localsymtable).buildderef;
|
begin
|
||||||
|
aktglobalsymtable:=tstoredsymtable(globalsymtable);
|
||||||
|
aktstaticsymtable:=tstoredsymtable(localsymtable);
|
||||||
|
tstoredsymtable(localsymtable).buildderef;
|
||||||
|
tstoredsymtable(localsymtable).buildderefimpl;
|
||||||
|
end;
|
||||||
writederefdata;
|
writederefdata;
|
||||||
|
|
||||||
ppufile.writeentry(ibendinterface);
|
ppufile.writeentry(ibendinterface);
|
||||||
@ -1052,6 +1089,13 @@ uses
|
|||||||
{ the interface units affect the crc }
|
{ the interface units affect the crc }
|
||||||
writeusedunit(true);
|
writeusedunit(true);
|
||||||
|
|
||||||
|
{ deref data of interface that affect the crc }
|
||||||
|
derefdata.reset;
|
||||||
|
aktglobalsymtable:=tstoredsymtable(globalsymtable);
|
||||||
|
tstoredsymtable(globalsymtable).buildderef;
|
||||||
|
derefdataintflen:=derefdata.size;
|
||||||
|
writederefdata;
|
||||||
|
|
||||||
ppufile.writeentry(ibendinterface);
|
ppufile.writeentry(ibendinterface);
|
||||||
|
|
||||||
{ write the symtable entries }
|
{ write the symtable entries }
|
||||||
@ -1466,7 +1510,11 @@ if modulename^='SYMSYM' then
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.42 2003-10-22 20:40:00 peter
|
Revision 1.43 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.42 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.41 2003/10/22 17:38:25 peter
|
Revision 1.41 2003/10/22 17:38:25 peter
|
||||||
|
@ -60,7 +60,7 @@ interface
|
|||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -544,15 +544,15 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tasmnode.buildderef;
|
procedure tasmnode.buildderefimpl;
|
||||||
var
|
var
|
||||||
hp : tai;
|
hp : tai;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
hp:=tai(p_asm.first);
|
hp:=tai(p_asm.first);
|
||||||
while assigned(hp) do
|
while assigned(hp) do
|
||||||
begin
|
begin
|
||||||
hp.buildderef;
|
hp.buildderefimpl;
|
||||||
hp:=tai(hp.next);
|
hp:=tai(hp.next);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -845,7 +845,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.68 2003-10-22 20:40:00 peter
|
Revision 1.69 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.68 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.67 2003/10/21 18:15:16 peter
|
Revision 1.67 2003/10/21 18:15:16 peter
|
||||||
|
@ -114,7 +114,7 @@ interface
|
|||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
{ Goes through all symbols in a class and subclasses and calls
|
{ Goes through all symbols in a class and subclasses and calls
|
||||||
@ -974,17 +974,17 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcallnode.buildderef;
|
procedure tcallnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
symtableprocentryderef.build(symtableprocentry);
|
symtableprocentryderef.build(symtableprocentry);
|
||||||
procdefinitionderef.build(procdefinition);
|
procdefinitionderef.build(procdefinition);
|
||||||
if assigned(methodpointer) then
|
if assigned(methodpointer) then
|
||||||
methodpointer.buildderef;
|
methodpointer.buildderefimpl;
|
||||||
if assigned(_funcretnode) then
|
if assigned(_funcretnode) then
|
||||||
_funcretnode.buildderef;
|
_funcretnode.buildderefimpl;
|
||||||
if assigned(inlinecode) then
|
if assigned(inlinecode) then
|
||||||
inlinecode.buildderef;
|
inlinecode.buildderefimpl;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -2584,7 +2584,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.199 2003-10-22 20:40:00 peter
|
Revision 1.200 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.199 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.198 2003/10/21 18:17:02 peter
|
Revision 1.198 2003/10/21 18:17:02 peter
|
||||||
|
@ -44,7 +44,7 @@ interface
|
|||||||
constructor create_explicit(node : tnode;const t : ttype);
|
constructor create_explicit(node : tnode;const t : ttype);
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -499,9 +499,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure ttypeconvnode.buildderef;
|
procedure ttypeconvnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
totype.buildderef;
|
totype.buildderef;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2111,7 +2111,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.125 2003-10-22 20:40:00 peter
|
Revision 1.126 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.125 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.124 2003/10/21 18:16:13 peter
|
Revision 1.124 2003/10/21 18:16:13 peter
|
||||||
|
@ -40,7 +40,7 @@ interface
|
|||||||
constructor create(v : bestreal;const t:ttype);virtual;
|
constructor create(v : bestreal;const t:ttype);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -61,7 +61,7 @@ interface
|
|||||||
constructor create(v : tconstexprint;const t:ttype; _rangecheck : boolean);virtual;
|
constructor create(v : tconstexprint;const t:ttype; _rangecheck : boolean);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -77,7 +77,7 @@ interface
|
|||||||
constructor create(v : TConstPtrUInt;const t:ttype);virtual;
|
constructor create(v : TConstPtrUInt;const t:ttype);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -96,7 +96,7 @@ interface
|
|||||||
constructor createwstr(w : pcompilerwidestring);virtual;
|
constructor createwstr(w : pcompilerwidestring);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
@ -115,7 +115,7 @@ interface
|
|||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -370,9 +370,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure trealconstnode.buildderef;
|
procedure trealconstnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
restype.buildderef;
|
restype.buildderef;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -463,9 +463,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tordconstnode.buildderef;
|
procedure tordconstnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
restype.buildderef;
|
restype.buildderef;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -548,9 +548,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tpointerconstnode.buildderef;
|
procedure tpointerconstnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
restype.buildderef;
|
restype.buildderef;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -681,9 +681,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tstringconstnode.buildderef;
|
procedure tstringconstnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -805,9 +805,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tsetconstnode.buildderef;
|
procedure tsetconstnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
restype.buildderef;
|
restype.buildderef;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -950,7 +950,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.55 2003-10-22 20:40:00 peter
|
Revision 1.56 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.55 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.54 2003/10/07 18:17:44 peter
|
Revision 1.54 2003/10/07 18:17:44 peter
|
||||||
|
@ -60,7 +60,7 @@ interface
|
|||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
procedure insertintolist(l : tnodelist);override;
|
procedure insertintolist(l : tnodelist);override;
|
||||||
procedure printnodetree(var t:text);override;
|
procedure printnodetree(var t:text);override;
|
||||||
@ -125,7 +125,7 @@ interface
|
|||||||
{ constructor createintern(g:tinterngotolabel);}
|
{ constructor createintern(g:tinterngotolabel);}
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function det_resulttype:tnode;override;
|
function det_resulttype:tnode;override;
|
||||||
@ -143,7 +143,7 @@ interface
|
|||||||
constructor create(p : tlabelsym;l:tnode);virtual;
|
constructor create(p : tlabelsym;l:tnode);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function det_resulttype:tnode;override;
|
function det_resulttype:tnode;override;
|
||||||
@ -157,7 +157,7 @@ interface
|
|||||||
constructor create(l,taddr,tframe:tnode);virtual;
|
constructor create(l,taddr,tframe:tnode);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
procedure insertintolist(l : tnodelist);override;
|
procedure insertintolist(l : tnodelist);override;
|
||||||
@ -287,13 +287,13 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tloopnode.buildderef;
|
procedure tloopnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
if assigned(t1) then
|
if assigned(t1) then
|
||||||
t1.buildderef;
|
t1.buildderefimpl;
|
||||||
if assigned(t2) then
|
if assigned(t2) then
|
||||||
t2.buildderef;
|
t2.buildderefimpl;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -979,9 +979,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tgotonode.buildderef;
|
procedure tgotonode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
labsymderef.build(labsym);
|
labsymderef.build(labsym);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1076,9 +1076,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tlabelnode.buildderef;
|
procedure tlabelnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
labsymderef.build(labsym);
|
labsymderef.build(labsym);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1160,11 +1160,11 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure traisenode.buildderef;
|
procedure traisenode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
if assigned(frametree) then
|
if assigned(frametree) then
|
||||||
frametree.buildderef;
|
frametree.buildderefimpl;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1467,7 +1467,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.84 2003-10-22 20:40:00 peter
|
Revision 1.85 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.84 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.83 2003/10/09 21:31:37 daniel
|
Revision 1.83 2003/10/09 21:31:37 daniel
|
||||||
|
@ -44,7 +44,7 @@ interface
|
|||||||
constructor create_procvar(v : tsym;d:tprocdef;st : tsymtable);virtual;
|
constructor create_procvar(v : tsym;d:tprocdef;st : tsymtable);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
procedure set_mp(p:tnode);
|
procedure set_mp(p:tnode);
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
@ -98,7 +98,7 @@ interface
|
|||||||
constructor create(t : ttype);virtual;
|
constructor create(t : ttype);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
function det_resulttype:tnode;override;
|
function det_resulttype:tnode;override;
|
||||||
@ -114,7 +114,7 @@ interface
|
|||||||
constructor create(def:tstoreddef;rt:trttitype);virtual;
|
constructor create(def:tstoreddef;rt:trttitype);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -327,9 +327,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tloadnode.buildderef;
|
procedure tloadnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
symtableentryderef.build(symtableentry);
|
symtableentryderef.build(symtableentry);
|
||||||
procdefderef.build(procdef);
|
procdefderef.build(procdef);
|
||||||
end;
|
end;
|
||||||
@ -1133,9 +1133,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure ttypenode.buildderef;
|
procedure ttypenode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
restype.buildderef;
|
restype.buildderef;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1206,9 +1206,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure trttinode.buildderef;
|
procedure trttinode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
rttidefderef.build(rttidef);
|
rttidefderef.build(rttidef);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1272,7 +1272,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.114 2003-10-22 20:40:00 peter
|
Revision 1.115 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.114 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.113 2003/10/17 14:38:32 peter
|
Revision 1.113 2003/10/17 14:38:32 peter
|
||||||
|
@ -55,7 +55,7 @@ interface
|
|||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure mark_write;override;
|
procedure mark_write;override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -77,7 +77,7 @@ interface
|
|||||||
constructor create(varsym : tsym;l : tnode);virtual;
|
constructor create(varsym : tsym;l : tnode);virtual;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
@ -239,9 +239,9 @@ implementation
|
|||||||
left.mark_write;
|
left.mark_write;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure taddrnode.buildderef;
|
procedure taddrnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
getprocvardefderef.build(getprocvardef);
|
getprocvardefderef.build(getprocvardef);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -530,9 +530,9 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tsubscriptnode.buildderef;
|
procedure tsubscriptnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
vsderef.build(vs);
|
vsderef.build(vs);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -920,7 +920,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.67 2003-10-22 20:40:00 peter
|
Revision 1.68 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.67 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.66 2003/10/21 18:16:13 peter
|
Revision 1.66 2003/10/21 18:16:13 peter
|
||||||
|
@ -296,7 +296,7 @@ interface
|
|||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);virtual;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);virtual;
|
||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);virtual;
|
procedure ppuwrite(ppufile:tcompilerppufile);virtual;
|
||||||
procedure buildderef;virtual;
|
procedure buildderefimpl;virtual;
|
||||||
procedure derefimpl;virtual;
|
procedure derefimpl;virtual;
|
||||||
|
|
||||||
{ toggles the flag }
|
{ toggles the flag }
|
||||||
@ -357,7 +357,7 @@ interface
|
|||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
procedure concattolist(l : tlinkedlist);override;
|
procedure concattolist(l : tlinkedlist);override;
|
||||||
function ischild(p : tnode) : boolean;override;
|
function ischild(p : tnode) : boolean;override;
|
||||||
@ -375,7 +375,7 @@ interface
|
|||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
procedure concattolist(l : tlinkedlist);override;
|
procedure concattolist(l : tlinkedlist);override;
|
||||||
function ischild(p : tnode) : boolean;override;
|
function ischild(p : tnode) : boolean;override;
|
||||||
@ -559,7 +559,7 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tnode.buildderef;
|
procedure tnode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
resulttype.buildderef;
|
resulttype.buildderef;
|
||||||
end;
|
end;
|
||||||
@ -744,11 +744,11 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tunarynode.buildderef;
|
procedure tunarynode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
if assigned(left) then
|
if assigned(left) then
|
||||||
left.buildderef;
|
left.buildderefimpl;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -849,11 +849,11 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tbinarynode.buildderef;
|
procedure tbinarynode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
if assigned(right) then
|
if assigned(right) then
|
||||||
right.buildderef;
|
right.buildderefimpl;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -994,7 +994,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.72 2003-10-22 20:40:00 peter
|
Revision 1.73 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.72 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.71 2003/10/18 15:41:26 peter
|
Revision 1.71 2003/10/18 15:41:26 peter
|
||||||
|
@ -79,7 +79,7 @@ interface
|
|||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderefimpl;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
procedure insertintolist(l : tnodelist);override;
|
procedure insertintolist(l : tnodelist);override;
|
||||||
@ -546,12 +546,12 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcasenode.buildderef;
|
procedure tcasenode.buildderefimpl;
|
||||||
begin
|
begin
|
||||||
inherited buildderef;
|
inherited buildderefimpl;
|
||||||
if assigned(elseblock) then
|
if assigned(elseblock) then
|
||||||
elseblock.buildderef;
|
elseblock.buildderefimpl;
|
||||||
{ppubuildderefcaserecord(nodes);}
|
{ppubuildderefimplcaserecord(nodes);}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -695,7 +695,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.48 2003-10-22 20:40:00 peter
|
Revision 1.49 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.48 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.47 2003/10/09 21:31:37 daniel
|
Revision 1.47 2003/10/09 21:31:37 daniel
|
||||||
|
@ -77,6 +77,7 @@ interface
|
|||||||
procedure ppuwritedef(ppufile:tcompilerppufile);
|
procedure ppuwritedef(ppufile:tcompilerppufile);
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);virtual;abstract;
|
procedure ppuwrite(ppufile:tcompilerppufile);virtual;abstract;
|
||||||
procedure buildderef;override;
|
procedure buildderef;override;
|
||||||
|
procedure buildderefimpl;override;
|
||||||
procedure deref;override;
|
procedure deref;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function size:longint;override;
|
function size:longint;override;
|
||||||
@ -544,6 +545,7 @@ interface
|
|||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||||
procedure buildderef;override;
|
procedure buildderef;override;
|
||||||
|
procedure buildderefimpl;override;
|
||||||
procedure deref;override;
|
procedure deref;override;
|
||||||
procedure derefimpl;override;
|
procedure derefimpl;override;
|
||||||
function getsymtable(t:tgetsymtable):tsymtable;override;
|
function getsymtable(t:tgetsymtable):tsymtable;override;
|
||||||
@ -1001,6 +1003,11 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tstoreddef.buildderefimpl;
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tstoreddef.deref;
|
procedure tstoreddef.deref;
|
||||||
begin
|
begin
|
||||||
typesym:=ttypesym(typesymderef.resolve);
|
typesym:=ttypesym(typesymderef.resolve);
|
||||||
@ -3297,6 +3304,9 @@ implementation
|
|||||||
var
|
var
|
||||||
hp : TParaItem;
|
hp : TParaItem;
|
||||||
begin
|
begin
|
||||||
|
{ released procdef? }
|
||||||
|
if not assigned(parast) then
|
||||||
|
exit;
|
||||||
inherited buildderef;
|
inherited buildderef;
|
||||||
rettype.buildderef;
|
rettype.buildderef;
|
||||||
{ parast }
|
{ parast }
|
||||||
@ -3526,6 +3536,9 @@ implementation
|
|||||||
|
|
||||||
procedure tabstractprocdef.concatstabto(asmlist : taasmoutput);
|
procedure tabstractprocdef.concatstabto(asmlist : taasmoutput);
|
||||||
begin
|
begin
|
||||||
|
{ released procdef? }
|
||||||
|
if not assigned(parast) then
|
||||||
|
exit;
|
||||||
if (not assigned(typesym) or ttypesym(typesym).isusedinstab or (cs_gdb_dbx in aktglobalswitches))
|
if (not assigned(typesym) or ttypesym(typesym).isusedinstab or (cs_gdb_dbx in aktglobalswitches))
|
||||||
and (is_def_stab_written = not_written) then
|
and (is_def_stab_written = not_written) then
|
||||||
begin
|
begin
|
||||||
@ -4063,6 +4076,9 @@ implementation
|
|||||||
|
|
||||||
procedure tprocdef.concatstabto(asmlist : taasmoutput);
|
procedure tprocdef.concatstabto(asmlist : taasmoutput);
|
||||||
begin
|
begin
|
||||||
|
{ released procdef? }
|
||||||
|
if not assigned(parast) then
|
||||||
|
exit;
|
||||||
if (proccalloption=pocall_internproc) then
|
if (proccalloption=pocall_internproc) then
|
||||||
exit;
|
exit;
|
||||||
if not isstabwritten then
|
if not isstabwritten then
|
||||||
@ -4098,16 +4114,37 @@ implementation
|
|||||||
same symtable }
|
same symtable }
|
||||||
procsymderef.build(procsym);
|
procsymderef.build(procsym);
|
||||||
|
|
||||||
|
aktparasymtable:=oldparasymtable;
|
||||||
|
aktlocalsymtable:=oldlocalsymtable;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tprocdef.buildderefimpl;
|
||||||
|
var
|
||||||
|
oldparasymtable,
|
||||||
|
oldlocalsymtable : tsymtable;
|
||||||
|
begin
|
||||||
|
{ released procdef? }
|
||||||
|
if not assigned(parast) then
|
||||||
|
exit;
|
||||||
|
|
||||||
|
oldparasymtable:=aktparasymtable;
|
||||||
|
oldlocalsymtable:=aktlocalsymtable;
|
||||||
|
aktparasymtable:=parast;
|
||||||
|
aktlocalsymtable:=localst;
|
||||||
|
|
||||||
|
inherited buildderefimpl;
|
||||||
|
|
||||||
{ locals }
|
{ locals }
|
||||||
if assigned(localst) then
|
if assigned(localst) then
|
||||||
begin
|
begin
|
||||||
tlocalsymtable(localst).buildderef;
|
tlocalsymtable(localst).buildderefimpl;
|
||||||
funcretsymderef.build(funcretsym);
|
funcretsymderef.build(funcretsym);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ inline tree }
|
{ inline tree }
|
||||||
if (proccalloption=pocall_inline) then
|
if (proccalloption=pocall_inline) then
|
||||||
code.buildderef;
|
code.buildderefimpl;
|
||||||
|
|
||||||
aktparasymtable:=oldparasymtable;
|
aktparasymtable:=oldparasymtable;
|
||||||
aktlocalsymtable:=oldlocalsymtable;
|
aktlocalsymtable:=oldlocalsymtable;
|
||||||
@ -4119,6 +4156,10 @@ implementation
|
|||||||
oldparasymtable,
|
oldparasymtable,
|
||||||
oldlocalsymtable : tsymtable;
|
oldlocalsymtable : tsymtable;
|
||||||
begin
|
begin
|
||||||
|
{ released procdef? }
|
||||||
|
if not assigned(parast) then
|
||||||
|
exit;
|
||||||
|
|
||||||
oldparasymtable:=aktparasymtable;
|
oldparasymtable:=aktparasymtable;
|
||||||
oldlocalsymtable:=aktlocalsymtable;
|
oldlocalsymtable:=aktlocalsymtable;
|
||||||
aktparasymtable:=parast;
|
aktparasymtable:=parast;
|
||||||
@ -6050,7 +6091,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.183 2003-10-22 20:40:00 peter
|
Revision 1.184 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.183 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.182 2003/10/21 18:14:49 peter
|
Revision 1.182 2003/10/21 18:14:49 peter
|
||||||
|
@ -332,8 +332,13 @@ implementation
|
|||||||
|
|
||||||
|
|
||||||
procedure tcompilerppufile.putderef(const d:tderef);
|
procedure tcompilerppufile.putderef(const d:tderef);
|
||||||
|
var
|
||||||
|
oldcrc : boolean;
|
||||||
begin
|
begin
|
||||||
|
oldcrc:=do_crc;
|
||||||
|
do_crc:=false;
|
||||||
putlongint(d.dataidx);
|
putlongint(d.dataidx);
|
||||||
|
do_crc:=oldcrc;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -387,7 +392,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.21 2003-10-22 20:40:00 peter
|
Revision 1.22 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.21 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.20 2003/10/07 16:06:30 peter
|
Revision 1.20 2003/10/07 16:06:30 peter
|
||||||
|
@ -71,6 +71,7 @@ interface
|
|||||||
procedure load_references(ppufile:tcompilerppufile;locals:boolean);virtual;
|
procedure load_references(ppufile:tcompilerppufile;locals:boolean);virtual;
|
||||||
procedure write_references(ppufile:tcompilerppufile;locals:boolean);virtual;
|
procedure write_references(ppufile:tcompilerppufile;locals:boolean);virtual;
|
||||||
procedure buildderef;virtual;
|
procedure buildderef;virtual;
|
||||||
|
procedure buildderefimpl;virtual;
|
||||||
procedure deref;virtual;
|
procedure deref;virtual;
|
||||||
procedure derefimpl;virtual;
|
procedure derefimpl;virtual;
|
||||||
procedure insert(sym : tsymentry);override;
|
procedure insert(sym : tsymentry);override;
|
||||||
@ -494,6 +495,20 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tstoredsymtable.buildderefimpl;
|
||||||
|
var
|
||||||
|
hp : tdef;
|
||||||
|
begin
|
||||||
|
{ deref the implementation part of definitions }
|
||||||
|
hp:=tdef(defindex.first);
|
||||||
|
while assigned(hp) do
|
||||||
|
begin
|
||||||
|
hp.buildderefimpl;
|
||||||
|
hp:=tdef(hp.indexnext);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tstoredsymtable.deref;
|
procedure tstoredsymtable.deref;
|
||||||
var
|
var
|
||||||
hp : tdef;
|
hp : tdef;
|
||||||
@ -2282,7 +2297,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.119 2003-10-22 20:40:00 peter
|
Revision 1.120 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.119 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.118 2003/10/22 15:22:33 peter
|
Revision 1.118 2003/10/22 15:22:33 peter
|
||||||
|
@ -71,6 +71,7 @@ interface
|
|||||||
defoptions : tdefoptions;
|
defoptions : tdefoptions;
|
||||||
constructor create;
|
constructor create;
|
||||||
procedure buildderef;virtual;abstract;
|
procedure buildderef;virtual;abstract;
|
||||||
|
procedure buildderefimpl;virtual;abstract;
|
||||||
procedure deref;virtual;abstract;
|
procedure deref;virtual;abstract;
|
||||||
procedure derefimpl;virtual;abstract;
|
procedure derefimpl;virtual;abstract;
|
||||||
function typename:string;
|
function typename:string;
|
||||||
@ -914,7 +915,11 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.31 2003-10-22 20:40:00 peter
|
Revision 1.32 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.31 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.30 2003/10/22 15:22:33 peter
|
Revision 1.30 2003/10/22 15:22:33 peter
|
||||||
|
@ -210,7 +210,7 @@ interface
|
|||||||
protected
|
protected
|
||||||
procedure ppuloadoper(ppufile:tcompilerppufile;var o:toper);override;
|
procedure ppuloadoper(ppufile:tcompilerppufile;var o:toper);override;
|
||||||
procedure ppuwriteoper(ppufile:tcompilerppufile;const o:toper);override;
|
procedure ppuwriteoper(ppufile:tcompilerppufile;const o:toper);override;
|
||||||
procedure ppubuildderefoper(var o:toper);override;
|
procedure ppubuildderefimploper(var o:toper);override;
|
||||||
procedure ppuderefoper(var o:toper);override;
|
procedure ppuderefoper(var o:toper);override;
|
||||||
private
|
private
|
||||||
{ next fields are filled in pass1, so pass2 is faster }
|
{ next fields are filled in pass1, so pass2 is faster }
|
||||||
@ -807,7 +807,7 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure taicpu.ppubuildderefoper(var o:toper);
|
procedure taicpu.ppubuildderefimploper(var o:toper);
|
||||||
begin
|
begin
|
||||||
case o.typ of
|
case o.typ of
|
||||||
top_local :
|
top_local :
|
||||||
@ -2328,7 +2328,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.34 2003-10-22 20:40:00 peter
|
Revision 1.35 2003-10-23 14:44:07 peter
|
||||||
|
* splitted buildderef and buildderefimpl to fix interface crc
|
||||||
|
calculation
|
||||||
|
|
||||||
|
Revision 1.34 2003/10/22 20:40:00 peter
|
||||||
* write derefdata in a separate ppu entry
|
* write derefdata in a separate ppu entry
|
||||||
|
|
||||||
Revision 1.33 2003/10/21 15:15:36 peter
|
Revision 1.33 2003/10/21 15:15:36 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user