mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 08:26:20 +02:00
* fixed r18981 (conversion of LOC_JUMP to something else must happen before
before the old jump labels are restored) git-svn-id: branches/jvmbackend@19155 -
This commit is contained in:
parent
583c9a3360
commit
5332263d46
@ -377,6 +377,13 @@ implementation
|
|||||||
end;
|
end;
|
||||||
secondpass(right);
|
secondpass(right);
|
||||||
|
|
||||||
|
{ simplify index location if necessary, since array references support
|
||||||
|
an index in memory, but not an another array index }
|
||||||
|
if isjump or
|
||||||
|
((right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE]) and
|
||||||
|
(right.location.reference.arrayreftype<>art_none)) then
|
||||||
|
hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,true);
|
||||||
|
|
||||||
if isjump then
|
if isjump then
|
||||||
begin
|
begin
|
||||||
current_procinfo.CurrTrueLabel:=otl;
|
current_procinfo.CurrTrueLabel:=otl;
|
||||||
@ -384,12 +391,6 @@ implementation
|
|||||||
end
|
end
|
||||||
else if (right.location.loc = LOC_JUMP) then
|
else if (right.location.loc = LOC_JUMP) then
|
||||||
internalerror(2011090501);
|
internalerror(2011090501);
|
||||||
{ simplify index location if necessary, since array references support
|
|
||||||
an index in memory, but not an another array index }
|
|
||||||
if (right.location.loc=LOC_JUMP) or
|
|
||||||
((right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE]) and
|
|
||||||
(right.location.reference.arrayreftype<>art_none)) then
|
|
||||||
hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,true);
|
|
||||||
{ replace enum class instance with the corresponding integer value }
|
{ replace enum class instance with the corresponding integer value }
|
||||||
if (right.resultdef.typ=enumdef) then
|
if (right.resultdef.typ=enumdef) then
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user