55 lines
1.0 KiB
Ada
55 lines
1.0 KiB
Ada
-- { dg-do run }
|
|
-- { dg-options "-gnatws" }
|
|
|
|
with Unchecked_Conversion;
|
|
procedure biased_uc is
|
|
begin
|
|
-- Case (f) target type is biased, source is unbiased
|
|
|
|
declare
|
|
type a is new integer range 0 .. 255;
|
|
for a'size use 8;
|
|
|
|
type b is new integer range 200 .. 455;
|
|
for b'size use 8;
|
|
|
|
av : a;
|
|
bv : b;
|
|
|
|
for av'size use 8;
|
|
for bv'size use 8;
|
|
|
|
function a2b is new Unchecked_Conversion (a,b);
|
|
|
|
begin
|
|
bv := a2b (200);
|
|
if bv = 200 then
|
|
raise Program_Error;
|
|
end if;
|
|
end;
|
|
|
|
-- Case (g) target type is biased, source object is biased
|
|
|
|
declare
|
|
type a is new integer range 1 .. 256;
|
|
for a'size use 16;
|
|
|
|
type b is new integer range 1 .. 65536;
|
|
for b'size use 16;
|
|
|
|
av : a;
|
|
bv : b;
|
|
|
|
for av'size use 8;
|
|
for bv'size use 16;
|
|
|
|
function a2b is new Unchecked_Conversion (a,b);
|
|
|
|
begin
|
|
bv := a2b (1);
|
|
if bv /= 2 then
|
|
raise Program_Error;
|
|
end if;
|
|
end;
|
|
end;
|