Ver código fonte

* abstractrecorddef.contains_float_field should search recursively, resolves #27580

git-svn-id: trunk@30168 -
florian 10 anos atrás
pai
commit
f0984fb628
1 arquivos alterados com 9 adições e 3 exclusões
  1. 9 3
      compiler/symdef.pas

+ 9 - 3
compiler/symdef.pas

@@ -3991,9 +3991,15 @@ implementation
           begin
             if tsym(symtable.symlist[i]).typ<>fieldvarsym then
               continue;
-            if assigned(tfieldvarsym(symtable.symlist[i]).vardef) and
-              tstoreddef(tfieldvarsym(symtable.symlist[i]).vardef).is_fpuregable then
-              exit;
+            if assigned(tfieldvarsym(symtable.symlist[i]).vardef) then
+              begin
+                if tstoreddef(tfieldvarsym(symtable.symlist[i]).vardef).is_fpuregable then
+                  exit;
+                { search recursively }
+                if (tstoreddef(tfieldvarsym(symtable.symlist[i]).vardef).typ=recorddef) and
+                  (tabstractrecorddef(tfieldvarsym(symtable.symlist[i]).vardef).contains_float_field) then
+                  exit;
+              end;
           end;
         result:=false;
       end;