diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2014-03-29 22:31:55 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2014-03-29 22:31:55 +0000 |
commit | 0a3d011fc90f8dac768ae4da946ee8e93f7afa3d (patch) | |
tree | d29bc38b7a94294d109f886a16aef25ce3037d40 /compiler/ncal.pas | |
parent | b254e20751a96451551fcb51351e0fabb2d8b19d (diff) | |
download | fpc-0a3d011fc90f8dac768ae4da946ee8e93f7afa3d.tar.gz |
+ support overriding tdef/tsym methods with target-specific functionality:
o made all (non-abstract) tdef and tsym constructors virtual
o added c*def/c*sym classref types for every (non-abstract) t*def/t*sym
class
o added cpusym unit for every architecture that derives a tcpu*def/tcpu*sym
class from the base classes, and initialises the c*def/c*sym classes with
them. This is done so that the llvm target will be able to derive from
the tcpu*def/sym classes without umpteen ifdefs, and it also means that
the WPO can devirtualise everything because the c* variables are only
initialised with one class type
o replaced all t*def/t*sym constructor calls with c*def/c*sym constructor
calls
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27361 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncal.pas')
-rw-r--r-- | compiler/ncal.pas | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/ncal.pas b/compiler/ncal.pas index 262e24efd4..4ff1ac37bb 100644 --- a/compiler/ncal.pas +++ b/compiler/ncal.pas @@ -1344,7 +1344,7 @@ implementation for i:=0 to varargsparas.count-1 do begin hp:=tparavarsym(varargsparas[i]); - hpn:=tparavarsym.create(hp.realname,hp.paranr,hp.varspez,hp.vardef,[]); + hpn:=cparavarsym.create(hp.realname,hp.paranr,hp.varspez,hp.vardef,[]); n.varargsparas.add(hpn); para:=tcallparanode(n.left); while assigned(para) do @@ -1927,7 +1927,7 @@ implementation be marked as instantiatable (only the pointeddef will actually be recorded, so it's no problem that the clasrefdef is only temporary) } - crefdef:=tclassrefdef.create(tcallnode(methodpointer).methodpointer.resultdef); + crefdef:=cclassrefdef.create(tcallnode(methodpointer).methodpointer.resultdef); { and register it } crefdef.register_created_object_type; end @@ -2777,7 +2777,7 @@ implementation begin if cpf_varargs_para in pt.callparaflags then begin - varargspara:=tparavarsym.create('va'+tostr(i),i,vs_value,pt.resultdef,[]); + varargspara:=cparavarsym.create('va'+tostr(i),i,vs_value,pt.resultdef,[]); dec(i); { varargspara is left-right, use insert instead of concat } |