diff --git a/compiler/nmem.pas b/compiler/nmem.pas index 298790e313..6f5f40e752 100644 --- a/compiler/nmem.pas +++ b/compiler/nmem.pas @@ -62,6 +62,7 @@ interface constructor create(l : tnode);virtual; constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override; procedure ppuwrite(ppufile:tcompilerppufile);override; + procedure mark_write;override; procedure derefimpl;override; function getcopy : tnode;override; function pass_1 : tnode;override; @@ -298,6 +299,12 @@ implementation ppufile.putderef(getprocvardef); end; + procedure Taddrnode.mark_write; + + begin + {@procvar:=nil is legal in Delphi mode.} + left.mark_write; + end; procedure taddrnode.derefimpl; begin @@ -1043,7 +1050,11 @@ begin end. { $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 ifdefs around for loop optimizations remain diff --git a/compiler/node.pas b/compiler/node.pas index 93ff65378d..871a029969 100644 --- a/compiler/node.pas +++ b/compiler/node.pas @@ -337,7 +337,7 @@ interface {$endif} { For a t1:=t2 tree, mark the part of the tree t1 that gets written to (normally the loadnode) as write access. } - procedure mark_write;virtual; + procedure mark_write;virtual;abstract; procedure det_temp;virtual;abstract; procedure pass_2;virtual;abstract; @@ -695,9 +695,9 @@ implementation getcopy:=p; end; - procedure tnode.mark_write; +{ procedure tnode.mark_write; begin - end; + end;} procedure tnode.insertintolist(l : tnodelist); @@ -976,7 +976,11 @@ implementation end. { $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 Revision 1.47 2003/01/03 12:15:56 daniel