Bladeren bron

* check for refs>0 in init/final local data

peter 22 jaren geleden
bovenliggende
commit
72b8932713
1 gewijzigde bestanden met toevoegingen van 7 en 2 verwijderingen
  1. 7 2
      compiler/ncgutil.pas

+ 7 - 2
compiler/ncgutil.pas

@@ -924,6 +924,7 @@ implementation
       begin
         list:=taasmoutput(arg);
         if (tsym(p).typ=varsym) and
+           (tvarsym(p).refs>0) and
            assigned(tvarsym(p).vartype.def) and
            not(is_class(tvarsym(p).vartype.def)) and
            tvarsym(p).vartype.def.needs_inittable then
@@ -956,7 +957,8 @@ implementation
         case tsym(p).typ of
           varsym :
             begin
-              if not(vo_is_funcret in tvarsym(p).varoptions) and
+              if (tvarsym(p).refs>0) and
+                 not(vo_is_funcret in tvarsym(p).varoptions) and
                  assigned(tvarsym(p).vartype.def) and
                  not(is_class(tvarsym(p).vartype.def)) and
                  tvarsym(p).vartype.def.needs_inittable then
@@ -2053,7 +2055,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.146  2003-09-23 17:56:05  peter
+  Revision 1.147  2003-09-23 21:03:59  peter
+    * check for refs>0 in init/final local data
+
+  Revision 1.146  2003/09/23 17:56:05  peter
     * locals and paras are allocated in the code generation
     * tvarsym.localloc contains the location of para/local when
       generating code for the current procedure