@@ -182,8 +182,9 @@ interface
{ when it is not allowed to swap we have a constant on
left, that will give problems }
if not allow_swap then
- internalerror(200307043);
- swapleftright;
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false)
+ else
+ swapleftright;
end;
@@ -0,0 +1,9 @@
+{ %opt=-O- -Ooregvar }
+program app;
+
+var
+ p1, p2, p3: Pointer;
+begin
+ p1 := p1 + (pointer(1) - p2);
+end.