mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 01:09:13 +02:00
* fixed set+range on big endian systems
git-svn-id: trunk@6704 -
This commit is contained in:
parent
cb746ec830
commit
c3f22aae94
@ -1086,7 +1086,17 @@ implementation
|
|||||||
inserttypeconv(right,tsetdef(ld).elementdef);
|
inserttypeconv(right,tsetdef(ld).elementdef);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
CGMessage(type_e_mismatch)
|
CGMessage(type_e_mismatch);
|
||||||
|
{ ranges require normsets on big endian system }
|
||||||
|
if (target_info.endian=endian_big) and
|
||||||
|
(tsetdef(ld).size<>32) and
|
||||||
|
(rt=setelementn) and
|
||||||
|
assigned(tsetelementnode(right).right) then
|
||||||
|
begin
|
||||||
|
{ generate a temporary normset def, it'll be destroyed
|
||||||
|
when the symtable is unloaded }
|
||||||
|
inserttypeconv(left,tsetdef.create(tsetdef(ld).elementdef,255));
|
||||||
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@ -1102,8 +1112,7 @@ implementation
|
|||||||
else
|
else
|
||||||
inserttypeconv(right,left.resultdef);
|
inserttypeconv(right,left.resultdef);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end
|
end
|
||||||
{ pointer comparision and subtraction }
|
{ pointer comparision and subtraction }
|
||||||
else if (
|
else if (
|
||||||
@ -2447,6 +2456,7 @@ implementation
|
|||||||
ccallparanode.create(ctemprefnode.create(temp),
|
ccallparanode.create(ctemprefnode.create(temp),
|
||||||
ccallparanode.create(left,nil)))))
|
ccallparanode.create(left,nil)))))
|
||||||
);
|
);
|
||||||
|
|
||||||
{ remove reused parts from original node }
|
{ remove reused parts from original node }
|
||||||
tsetelementnode(right).right:=nil;
|
tsetelementnode(right).right:=nil;
|
||||||
tsetelementnode(right).left:=nil;
|
tsetelementnode(right).left:=nil;
|
||||||
|
Loading…
Reference in New Issue
Block a user