summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-12-26 20:00:18 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-12-26 20:00:18 +0000
commit3dacf0892ae1aaa3e4316c7feb20ecdf55e4ba4f (patch)
treecf790d59c7f04400741da0c0b62f41cdd816bb65 /compiler
parentbedd82e49ba107e2b978026834da70de7a59f87a (diff)
downloadfpc-3dacf0892ae1aaa3e4316c7feb20ecdf55e4ba4f.tar.gz
* register the types for the cgparas instead of for the parameters of
procvardefs, as it's those types that we use in the LLVM IR git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@32734 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler')
-rw-r--r--compiler/llvm/llvmtype.pas5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/llvm/llvmtype.pas b/compiler/llvm/llvmtype.pas
index b499034a73..9135d974e8 100644
--- a/compiler/llvm/llvmtype.pas
+++ b/compiler/llvm/llvmtype.pas
@@ -517,9 +517,10 @@ implementation
la_type for a procvardef (unless it's a procedure of object/record),
which means that recursive references should become plain "procedure"
types that are then casted to the real type when they are used }
+ def.init_paraloc_info(callerside);
for i:=0 to def.paras.count-1 do
- appenddef(list,tparavarsym(def.paras[i]).vardef);
- appenddef(list,def.returndef);
+ appenddef(list,llvmgetcgparadef(tparavarsym(def.paras[i]).paraloc[callerside],true));
+ appenddef(list,llvmgetcgparadef(def.funcretloc[callerside],true));
if assigned(def.typesym) and
not def.is_addressonly then
list.concat(taillvm.op_size(LA_TYPE,record_def(def)));