-- { dg-do run } -- { dg-options "-gnatws -O" } with System; procedure SSO17 is type My_Float is new Float range 0.0 .. 359.99; type Rec is record Az : My_Float; El : My_Float; end record; for Rec'Bit_Order use System.High_Order_First; for Rec'Scalar_Storage_Order use System.High_Order_First; R : Rec; procedure Is_True (B : Boolean); pragma No_Inline (Is_True); procedure Is_True (B : Boolean) is begin if not B then raise Program_Error; end if; end; begin R := (Az => 1.1, El => 2.2); Is_True (R.Az'Valid); R := (Az => 3.3, El => 4.4); Is_True (R.Az'Valid); end;