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/symtable.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/symtable.pas')
-rw-r--r-- | compiler/symtable.pas | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/symtable.pas b/compiler/symtable.pas index c43bb161c7..ea4fc323f5 100644 --- a/compiler/symtable.pas +++ b/compiler/symtable.pas @@ -485,7 +485,7 @@ implementation iblocalvarsym : sym:=tlocalvarsym.ppuload(ppufile); ibparavarsym : sym:=tparavarsym.ppuload(ppufile); ibfieldvarsym : sym:=tfieldvarsym.ppuload(ppufile); - ibabsolutevarsym : sym:=tabsolutevarsym.ppuload(ppufile); + ibabsolutevarsym : sym:=cabsolutevarsym.ppuload(ppufile); ibenumsym : sym:=tenumsym.ppuload(ppufile); ibpropertysym : sym:=tpropertysym.ppuload(ppufile); ibunitsym : sym:=tunitsym.ppuload(ppufile); @@ -1738,7 +1738,7 @@ implementation system.delete(n,1,p); oldsym:=findnamespace(upper(ns)); if not assigned(oldsym) then - insert(tnamespacesym.create(ns)); + insert(cnamespacesym.create(ns)); p:=pos('.',n); end; end; @@ -3647,7 +3647,7 @@ implementation systemunit:=nil; { create error syms and def } generrorsym:=terrorsym.create; - generrordef:=terrordef.create; + generrordef:=cerrordef.create; { macros } initialmacrosymtable:=tmacrosymtable.create(false); macrosymtablestack:=TSymtablestack.create; |