summaryrefslogtreecommitdiff
path: root/compiler/ncal.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-03-29 22:31:55 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-03-29 22:31:55 +0000
commit0a3d011fc90f8dac768ae4da946ee8e93f7afa3d (patch)
treed29bc38b7a94294d109f886a16aef25ce3037d40 /compiler/ncal.pas
parentb254e20751a96451551fcb51351e0fabb2d8b19d (diff)
downloadfpc-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.pas6
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 }