summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-03-28 11:33:59 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-03-28 11:33:59 +0000
commitc9d9634b19010788ba194fd26ea0cabfd180c00e (patch)
treead726cc3cb4215d37f95b450e8c956805cd0b582
parent699ea0c29f4af69d9717f27436d1c3056d2ac06f (diff)
downloadfpc-c9d9634b19010788ba194fd26ea0cabfd180c00e.tar.gz
* fixed crash in r30244 (we only have to get a new elementdef if we didn't
already initialise the location, and we won't get a new elementdef if the location is already assigned) git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@30346 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--compiler/llvm/nllvmmem.pas9
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/llvm/nllvmmem.pas b/compiler/llvm/nllvmmem.pas
index 97026e4781..8e65509fe0 100644
--- a/compiler/llvm/nllvmmem.pas
+++ b/compiler/llvm/nllvmmem.pas
@@ -155,9 +155,12 @@ implementation
if (resultdef.typ=floatdef) and
(tfloatdef(resultdef).floattype=s80real) then
begin
- { avoid uninitialised warning }
- arrptrelementdef:=nil;
- getarrelementptrdef;
+ if not assigned(locref) then
+ begin
+ { avoid uninitialised warning }
+ arrptrelementdef:=nil;
+ getarrelementptrdef;
+ end;
hreg:=hlcg.getaddressregister(current_asmdata.CurrAsmList,getpointerdef(resultdef));
hlcg.a_load_reg_reg(current_asmdata.CurrAsmList,arrptrelementdef,getpointerdef(resultdef),locref^.base,hreg);
locref^.base:=hreg;