diff options
author | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-09-18 14:48:54 +0000 |
---|---|---|
committer | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-09-18 14:48:54 +0000 |
commit | f189dd518215af7507a4ea3c19bfaf30b3b8ac8c (patch) | |
tree | aaf0ac7d49b1f2dde9432dda5d4af1b9086af094 /compiler/jvm | |
parent | f08785642dea319aca349b3a959c7770ce3925df (diff) | |
download | fpc-f189dd518215af7507a4ea3c19bfaf30b3b8ac8c.tar.gz |
ncal.pas:
* extend tcallnode with the ability to pass a tspecializationcontext so that tcallcandidates can do a final specialization
* the final procdef is registered at the end of tcallnode.pass_typecheck
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@31763 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/jvm')
-rw-r--r-- | compiler/jvm/njvmcal.pas | 2 | ||||
-rw-r--r-- | compiler/jvm/njvmcnv.pas | 10 | ||||
-rw-r--r-- | compiler/jvm/njvminl.pas | 4 | ||||
-rw-r--r-- | compiler/jvm/njvmld.pas | 2 | ||||
-rw-r--r-- | compiler/jvm/njvmmem.pas | 4 |
5 files changed, 11 insertions, 11 deletions
diff --git a/compiler/jvm/njvmcal.pas b/compiler/jvm/njvmcal.pas index e4aa37c576..09a9c2a74a 100644 --- a/compiler/jvm/njvmcal.pas +++ b/compiler/jvm/njvmcal.pas @@ -591,7 +591,7 @@ implementation in theory do that, because the parameter nodes have already been bound to the current procdef's parasyms } remove_hidden_paras; - result:=ccallnode.create(left,tprocsym(sym),symtableproc,methodpointer,callnodeflags); + result:=ccallnode.create(left,tprocsym(sym),symtableproc,methodpointer,callnodeflags,nil); result.flags:=flags; left:=nil; methodpointer:=nil; diff --git a/compiler/jvm/njvmcnv.pas b/compiler/jvm/njvmcnv.pas index 7dc603f6ae..66d642698e 100644 --- a/compiler/jvm/njvmcnv.pas +++ b/compiler/jvm/njvmcnv.pas @@ -524,7 +524,7 @@ implementation with a single #0 } result:=ccallnode.create(ccallparanode.create(left,nil),tprocsym(ps), ps.owner, - cloadvmtaddrnode.create(ctypenode.create(java_ansistring)),[]); + cloadvmtaddrnode.create(ctypenode.create(java_ansistring)),[],nil); include(result.flags,nf_isproperty); result:=ctypeconvnode.create_explicit(result,resultdef); { reused } @@ -863,7 +863,7 @@ implementation { call the (static class) method to get the raw bits } result:=ccallnode.create(ccallparanode.create(left,nil), tprocsym(psym),psym.owner, - cloadvmtaddrnode.create(ctypenode.create(csym.typedef)),[]); + cloadvmtaddrnode.create(ctypenode.create(csym.typedef)),[],nil); { convert the result to the result type of this type conversion node } inserttypeconv_explicit(result,resultdef); { left is reused } @@ -882,7 +882,7 @@ implementation internalerror(2011062601); result:=ccallnode.create(ccallparanode.create(left,nil), tprocsym(psym),psym.owner, - cloadvmtaddrnode.create(ctypenode.create(todef.classdef)),[]); + cloadvmtaddrnode.create(ctypenode.create(todef.classdef)),[],nil); { convert the result to the result type of this type conversion node } inserttypeconv_explicit(result,resultdef); { left is reused } @@ -899,7 +899,7 @@ implementation if not assigned(psym) or (psym.typ<>procsym) then internalerror(2011062602); - result:=ccallnode.create(nil,tprocsym(psym),psym.owner,left,[]); + result:=ccallnode.create(nil,tprocsym(psym),psym.owner,left,[],nil); { convert the result to the result type of this type conversion node } inserttypeconv_explicit(result,resultdef); { left is reused } @@ -1506,7 +1506,7 @@ implementation if not assigned(ps) or (ps.typ<>procsym) then internalerror(2011041910); - call:=ccallnode.create(ccallparanode.create(node.left,nil),tprocsym(ps),ps.owner,ctypeconvnode.create_explicit(node.right,jlclass),[]); + call:=ccallnode.create(ccallparanode.create(node.left,nil),tprocsym(ps),ps.owner,ctypeconvnode.create_explicit(node.right,jlclass),[],nil); node.left:=nil; node.right:=nil; firstpass(call); diff --git a/compiler/jvm/njvminl.pas b/compiler/jvm/njvminl.pas index 3141b48016..8c11487459 100644 --- a/compiler/jvm/njvminl.pas +++ b/compiler/jvm/njvminl.pas @@ -595,7 +595,7 @@ implementation internalerror(2011031403); stringnonnull:=cassignmentnode.create( ctemprefnode.create(lentemp), - ccallnode.create(nil,tprocsym(psym),psym.owner,stringtemp,[])); + ccallnode.create(nil,tprocsym(psym),psym.owner,stringtemp,[],nil)); { else-path: length is 0 } stringnull:=cassignmentnode.create( ctemprefnode.create(lentemp), @@ -618,7 +618,7 @@ implementation internalerror(2011052402); result:= ccallnode.create(nil,tprocsym(psym),psym.owner, - ctypeconvnode.create_explicit(caddrnode.create_internal(left),java_shortstring),[]); + ctypeconvnode.create_explicit(caddrnode.create_internal(left),java_shortstring),[],nil); { reused } left:=nil; end diff --git a/compiler/jvm/njvmld.pas b/compiler/jvm/njvmld.pas index 0115d99889..0b576f0eda 100644 --- a/compiler/jvm/njvmld.pas +++ b/compiler/jvm/njvmld.pas @@ -142,7 +142,7 @@ function tjvmassignmentnode.pass_1: tnode; ccallnode.create( ccallparanode.create(right, ccallparanode.create(tvecnode(target).right,nil)), - tprocsym(psym),psym.owner,tvecnode(target).left,[]); + tprocsym(psym),psym.owner,tvecnode(target).left,[],nil); right:=nil; tvecnode(target).left:=nil; tvecnode(target).right:=nil; diff --git a/compiler/jvm/njvmmem.pas b/compiler/jvm/njvmmem.pas index 26c00c7b21..c6beca7b21 100644 --- a/compiler/jvm/njvmmem.pas +++ b/compiler/jvm/njvmmem.pas @@ -332,7 +332,7 @@ implementation if not assigned(vs) or (tsym(vs).typ<>procsym) then internalerror(2011041901); - result:=ccallnode.create(nil,tprocsym(vs),vs.owner,left,[]); + result:=ccallnode.create(nil,tprocsym(vs),vs.owner,left,[],nil); inserttypeconv_explicit(result,resultdef); { reused } left:=nil; @@ -385,7 +385,7 @@ implementation { Pascal strings are 1-based, Java strings 0-based } result:=ccallnode.create(ccallparanode.create( caddnode.create(subn,right,genintconstnode(1)),nil),tprocsym(psym), - psym.owner,ctypeconvnode.create_explicit(left,stringclass),[]); + psym.owner,ctypeconvnode.create_explicit(left,stringclass),[],nil); left:=nil; right:=nil; exit; |