1-- { dg-do compile } 2 3procedure Varsize1 (Nbytes : Natural) is 4 5 type Message_T (Length : Natural) is record 6 case Length is 7 when 0 => null; 8 when others => Id : Natural; 9 end case; 10 end record; 11 12 type Local_Message_T is new Message_T (Nbytes); 13 14 function One_message return Local_Message_T is 15 M : Local_Message_T; 16 begin 17 if M.Length > 0 then 18 M.Id := 1; 19 end if; 20 return M; 21 end; 22 23 procedure Process (X : Local_Message_T) is begin null; end; 24 25begin 26 Process (One_Message); 27end; 28