Jelajahi Sumber

* always return true from tjvmnodeutils.force_init(), because when this
routine is called we don't know yet whether it has to be forced or not
for the JVM target (staticvarsyms that need initialization may still be
created during pass1 of the main program/unit code)

git-svn-id: branches/jvmbackend@18646 -

Jonas Maebe 14 tahun lalu
induk
melakukan
cfe125198c
1 mengubah file dengan 5 tambahan dan 4 penghapusan
  1. 5 4
      compiler/jvm/njvmutil.pas

+ 5 - 4
compiler/jvm/njvmutil.pas

@@ -105,10 +105,11 @@ implementation
   class function tjvmnodeutils.force_init: boolean;
     begin
       { we need an initialisation in case the al_globals list is not empty
-        (that's where the initialisation for global records is added) }
-      result:=
-        inherited or
-        not current_asmdata.asmlists[al_globals].empty;
+        (that's where the initialisation for global records etc is added) }
+      { problem: some bss symbols are only registered while processing the main
+        program (e.g. constant sets) -> cannot predict whether or not we'll
+        need it in advance }
+      result:=true;
     end;
 
   class procedure tjvmnodeutils.insertbssdata(sym: tstaticvarsym);