diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-03-28 11:33:59 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-03-28 11:33:59 +0000 |
commit | c9d9634b19010788ba194fd26ea0cabfd180c00e (patch) | |
tree | ad726cc3cb4215d37f95b450e8c956805cd0b582 | |
parent | 699ea0c29f4af69d9717f27436d1c3056d2ac06f (diff) | |
download | fpc-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.pas | 9 |
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; |