* Fixed mark_write for @ operator

(can happen when compiling @procvar:=nil (Delphi mode construction))
This commit is contained in:
daniel 2003-01-04 15:54:03 +00:00
parent a92d2c1f76
commit 25af993b76
2 changed files with 20 additions and 5 deletions

View File

@ -62,6 +62,7 @@ interface
constructor create(l : tnode);virtual; constructor create(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 mark_write;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;
@ -298,6 +299,12 @@ implementation
ppufile.putderef(getprocvardef); ppufile.putderef(getprocvardef);
end; end;
procedure Taddrnode.mark_write;
begin
{@procvar:=nil is legal in Delphi mode.}
left.mark_write;
end;
procedure taddrnode.derefimpl; procedure taddrnode.derefimpl;
begin begin
@ -1043,7 +1050,11 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.42 2003-01-03 12:15:56 daniel Revision 1.43 2003-01-04 15:54:03 daniel
* Fixed mark_write for @ operator
(can happen when compiling @procvar:=nil (Delphi mode construction))
Revision 1.42 2003/01/03 12:15:56 daniel
* Removed ifdefs around notifications * Removed ifdefs around notifications
ifdefs around for loop optimizations remain ifdefs around for loop optimizations remain

View File

@ -337,7 +337,7 @@ interface
{$endif} {$endif}
{ For a t1:=t2 tree, mark the part of the tree t1 that gets { For a t1:=t2 tree, mark the part of the tree t1 that gets
written to (normally the loadnode) as write access. } written to (normally the loadnode) as write access. }
procedure mark_write;virtual; procedure mark_write;virtual;abstract;
procedure det_temp;virtual;abstract; procedure det_temp;virtual;abstract;
procedure pass_2;virtual;abstract; procedure pass_2;virtual;abstract;
@ -695,9 +695,9 @@ implementation
getcopy:=p; getcopy:=p;
end; end;
procedure tnode.mark_write; { procedure tnode.mark_write;
begin begin
end; end;}
procedure tnode.insertintolist(l : tnodelist); procedure tnode.insertintolist(l : tnodelist);
@ -976,7 +976,11 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.48 2003-01-03 21:03:02 peter Revision 1.49 2003-01-04 15:54:03 daniel
* Fixed mark_write for @ operator
(can happen when compiling @procvar:=nil (Delphi mode construction))
Revision 1.48 2003/01/03 21:03:02 peter
* made mark_write dummy instead of abstract * made mark_write dummy instead of abstract
Revision 1.47 2003/01/03 12:15:56 daniel Revision 1.47 2003/01/03 12:15:56 daniel