summaryrefslogtreecommitdiff
path: root/compiler/ptconst.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-08-20 07:22:00 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-08-20 07:22:00 +0000
commit19a0a17aee02f48c6d9bd7c9d37b6f5595b27f58 (patch)
tree5c5e41facf57ef4825e7b3b24cf64955e807a594 /compiler/ptconst.pas
parentc2fcb6231f55b2c2e0881dee4faf3d44cf8abcc6 (diff)
downloadfpc-19a0a17aee02f48c6d9bd7c9d37b6f5595b27f58.tar.gz
* tprocdef.mangledname now gets an extra boolean parameter indicating
whether the mangled name is for defining a symbol, or for referencing it later (e.g. for a call or load of its address). The reason is that on the JVM both cases are different. + jvmdef unit to encode types according to the JVM rules + tprocdef.jvmmangledname() to encode a procdef's JVM mangled name (the common part of defining/referencing it; tprocdef.mangledname afterwards adorns it as required) git-svn-id: http://svn.freepascal.org/svn/fpc/branches/jvmbackend@18288 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ptconst.pas')
-rw-r--r--compiler/ptconst.pas6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/ptconst.pas b/compiler/ptconst.pas
index ea55148e7e..fdf2a7c371 100644
--- a/compiler/ptconst.pas
+++ b/compiler/ptconst.pas
@@ -346,7 +346,7 @@ implementation
{ update wpo info }
if not assigned(current_procinfo) or
(po_inline in current_procinfo.procdef.procoptions) or
- wpoinfomanager.symbol_live(current_procinfo.procdef.mangledname) then
+ wpoinfomanager.symbol_live(current_procinfo.procdef.mangledname(true)) then
tobjectdef(tclassrefdef(n.resultdef).pointeddef).register_maybe_created_object_type;
end;
niln:
@@ -547,7 +547,7 @@ implementation
if po_abstractmethod in pd.procoptions then
Message(type_e_cant_take_address_of_abstract_method)
else
- list.concat(Tai_const.Createname(pd.mangledname,offset));
+ list.concat(Tai_const.Createname(pd.mangledname(false),offset));
end;
staticvarsym :
list.concat(Tai_const.Createname(tstaticvarsym(srsym).mangledname,offset));
@@ -1014,7 +1014,7 @@ implementation
(tloadnode(n).symtableentry.typ=procsym) then
begin
pd:=tloadnode(n).procdef;
- list.concat(Tai_const.createname(pd.mangledname,0));
+ list.concat(Tai_const.createname(pd.mangledname(false),0));
{ nested procvar typed consts can only be initialised with nil
(checked above) or with a global procedure (checked here),
because in other cases we need a valid frame pointer }