Bladeren bron

* initialize file variables in iso mode

git-svn-id: trunk@15681 -
florian 15 jaren geleden
bovenliggende
commit
67416e958b
2 gewijzigde bestanden met toevoegingen van 5 en 2 verwijderingen
  1. 3 1
      compiler/ncgutil.pas
  2. 2 1
      compiler/pinline.pas

+ 3 - 1
compiler/ncgutil.pas

@@ -1470,7 +1470,9 @@ implementation
            ) and
            not(vo_is_typed_const in tabstractvarsym(p).varoptions) and
            not(vo_is_external in tabstractvarsym(p).varoptions) and
-           is_managed_type(tabstractvarsym(p).vardef) then
+           (is_managed_type(tabstractvarsym(p).vardef) or
+            ((m_iso in current_settings.modeswitches) and (tabstractvarsym(p).vardef.typ=filedef))
+           ) then
          begin
            OldAsmList:=current_asmdata.CurrAsmList;
            current_asmdata.CurrAsmList:=TAsmList(arg);

+ 2 - 1
compiler/pinline.pas

@@ -312,7 +312,8 @@ implementation
                          ccallnode.createintern('fpc_getmem',para)));
 
                      { create call to fpc_initialize }
-                     if is_managed_type(tpointerdef(p.resultdef).pointeddef) then
+                     if is_managed_type(tpointerdef(p.resultdef).pointeddef) or
+                       ((m_iso in current_settings.modeswitches) and (tpointerdef(p.resultdef).pointeddef.typ=filedef)) then
                        addstatement(newstatement,initialize_data_node(cderefnode.create(ctemprefnode.create(temp))));
 
                      { copy the temp to the destination }