Jonas Maebe 24 лет назад
Родитель
Сommit
0660d20448
1 измененных файлов с 9 добавлено и 2 удалено
  1. 9 2
      compiler/nld.pas

+ 9 - 2
compiler/nld.pas

@@ -678,6 +678,7 @@ implementation
         hp        : tarrayconstructornode;
         dovariant : boolean;
         htype     : ttype;
+        orgflags  : tnodeflagset;
       begin
         dovariant:=(nf_forcevaria in flags) or tarraydef(resulttype.def).isvariant;
         result:=nil;
@@ -742,6 +743,9 @@ implementation
               { we need a copy here, because self is destroyed }
               { by firstpass later                             }
               hp:=tarrayconstructornode(getcopy);
+              { we also need a copy of the flags to restore later (e.g. for }
+              { forcevaria) (JM)                                            }
+              orgflags := flags;
               while assigned(hp) do
                begin
                  thp:=tarrayconstructornode(hp.right);
@@ -749,7 +753,7 @@ implementation
                  chp:=hp;
                  hp:=thp;
                end;
-              include(chp.flags,nf_cargs);
+              chp.flags := orgflags;
               include(chp.flags,nf_cargswap);
               chp.location.loc:=LOC_MEM;
               calcregisters(chp,0,0,0);
@@ -817,7 +821,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.27  2001-10-28 17:22:25  peter
+  Revision 1.28  2001-10-31 17:34:20  jonas
+    * fixed web bug 1651
+
+  Revision 1.27  2001/10/28 17:22:25  peter
     * allow assignment of overloaded procedures to procvars when we know
       which procedure to take