summaryrefslogtreecommitdiff
path: root/compiler/jvm
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-11-28 19:24:42 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-11-28 19:24:42 +0000
commit5a82858e8f0107d591b2363ccc2cf70b270bbbba (patch)
tree70d8426b8d0022bc2458e8079da264d56663aa3f /compiler/jvm
parentca6a7f7eb4e021e3effeb8d42201325074ab5895 (diff)
parent72d656f26a5971e5c96ac6ad521317cf1f20a379 (diff)
downloadfpc-5a82858e8f0107d591b2363ccc2cf70b270bbbba.tar.gz
* synchronised with trunk till r40386
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40387 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/jvm')
-rw-r--r--compiler/jvm/njvmutil.pas11
1 files changed, 9 insertions, 2 deletions
diff --git a/compiler/jvm/njvmutil.pas b/compiler/jvm/njvmutil.pas
index 91e159ad89..c412ec43e1 100644
--- a/compiler/jvm/njvmutil.pas
+++ b/compiler/jvm/njvmutil.pas
@@ -28,7 +28,7 @@ interface
uses
cclasses,
node,nbas,
- ngenutil,
+ fmodule,ngenutil,
symtype,symconst,symsym,symdef;
@@ -36,6 +36,7 @@ interface
tjvmnodeutils = class(tnodeutils)
class function initialize_data_node(p:tnode; force: boolean):tnode; override;
class function finalize_data_node(p:tnode):tnode; override;
+ class procedure append_struct_initfinis(u: tmodule; initfini: tstructinifinipotype; var stat: tstatementnode); override;
class function force_init: boolean; override;
class procedure insertbssdata(sym: tstaticvarsym); override;
class function create_main_procdef(const name: string; potype: tproctypeoption; ps: tprocsym): tdef; override;
@@ -63,7 +64,7 @@ interface
implementation
uses
- verbose,cutils,globtype,globals,constexp,fmodule,compinnr,
+ verbose,cutils,globtype,globals,constexp,compinnr,
aasmdata,aasmtai,cpubase,aasmbase,aasmcpu,
symbase,symcpu,symtable,defutil,jvmdef,
ncnv,ncon,ninl,ncal,nld,nmem,
@@ -172,6 +173,12 @@ implementation
end;
+ class procedure tjvmnodeutils.append_struct_initfinis(u: tmodule; initfini: tstructinifinipotype; var stat: tstatementnode);
+ begin
+ { class constructors are implicitly called by the JVM runtime and cannot be called explicitly }
+ end;
+
+
class function tjvmnodeutils.force_init: boolean;
begin
{ we need an initialisation in case the al_globals list is not empty