summaryrefslogtreecommitdiff
path: root/compiler/ncgcal.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-10-06 20:54:36 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-10-06 20:54:36 +0000
commit3349f4c65362bb26931dfafc6bce81c43cc906a1 (patch)
tree7fb80b6beb916cea79a3adcf44b94bb256c1c5b8 /compiler/ncgcal.pas
parent9df05bf0429d83864cbc66c414503a86927cc3ca (diff)
downloadfpc-3349f4c65362bb26931dfafc6bce81c43cc906a1.tar.gz
* fixed type used to load the code pointer of a complex procvar
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28782 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncgcal.pas')
-rw-r--r--compiler/ncgcal.pas6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/ncgcal.pas b/compiler/ncgcal.pas
index 73e77f39ac..278bc34e9a 100644
--- a/compiler/ncgcal.pas
+++ b/compiler/ncgcal.pas
@@ -790,7 +790,11 @@ implementation
hlcg.a_load_reg_reg(current_asmdata.CurrAsmList,codeprocdef,codeprocdef,srcreg,result)
end
else
- hlcg.a_load_loc_reg(current_asmdata.CurrAsmList,codeprocdef,codeprocdef,right.location,result);
+ begin
+ hlcg.location_force_mem(current_asmdata.CurrAsmList,right.location,procdefinition);
+ hlcg.g_ptrtypecast_ref(current_asmdata.CurrAsmList,getpointerdef(procdefinition),getpointerdef(codeprocdef),right.location.reference);
+ hlcg.a_load_ref_reg(current_asmdata.CurrAsmList,codeprocdef,codeprocdef,right.location.reference,result);
+ end;
end;