1-- { dg-do run } 2-- { dg-options "-gnatws" } 3 4with Unchecked_Conversion; 5procedure biased_uc is 6begin 7 -- Case (f) target type is biased, source is unbiased 8 9 declare 10 type a is new integer range 0 .. 255; 11 for a'size use 8; 12 13 type b is new integer range 200 .. 455; 14 for b'size use 8; 15 16 av : a; 17 bv : b; 18 19 for av'size use 8; 20 for bv'size use 8; 21 22 function a2b is new Unchecked_Conversion (a,b); 23 24 begin 25 bv := a2b (200); 26 if bv = 200 then 27 raise Program_Error; 28 end if; 29 end; 30 31 -- Case (g) target type is biased, source object is biased 32 33 declare 34 type a is new integer range 1 .. 256; 35 for a'size use 16; 36 37 type b is new integer range 1 .. 65536; 38 for b'size use 16; 39 40 av : a; 41 bv : b; 42 43 for av'size use 8; 44 for bv'size use 16; 45 46 function a2b is new Unchecked_Conversion (a,b); 47 48 begin 49 bv := a2b (1); 50 if bv /= 2 then 51 raise Program_Error; 52 end if; 53 end; 54end; 55