llvmpara: don't crash if a parameter has no paralocs

This commit is contained in:
Jonas Maebe 2022-06-15 21:52:22 +02:00
parent 5ca8593f14
commit b68512a969

View File

@ -133,8 +133,9 @@ unit llvmpara;
begin begin
hp:=tparavarsym(paras[paranr]); hp:=tparavarsym(paras[paranr]);
paraloc:=hp.paraloc[side].location; paraloc:=hp.paraloc[side].location;
if assigned(paraloc) and if assigned(paraloc) then
assigned(paraloc^.next) and begin
if assigned(paraloc^.next) and
(hp.paraloc[side].def.typ in [orddef,enumdef,floatdef]) then (hp.paraloc[side].def.typ in [orddef,enumdef,floatdef]) then
begin begin
if not(paraloc^.loc in [LOC_REGISTER,LOC_FPUREGISTER,LOC_MMREGISTER]) then if not(paraloc^.loc in [LOC_REGISTER,LOC_FPUREGISTER,LOC_MMREGISTER]) then
@ -149,6 +150,7 @@ unit llvmpara;
end; end;
end; end;
end; end;
end;
procedure tllvmparamanager.createtempparaloc(list: TAsmList; calloption: tproccalloption; parasym: tparavarsym; can_use_final_stack_loc: boolean; var cgpara: TCGPara); procedure tllvmparamanager.createtempparaloc(list: TAsmList; calloption: tproccalloption; parasym: tparavarsym; can_use_final_stack_loc: boolean; var cgpara: TCGPara);
var var