--  { dg-do run }

procedure Addr11 is

  type Rec is record
    I : Short_Integer;
    C : Character;
  end record;

  type Derived is new Rec;
  for Derived use record
    I at 1 range 0 .. 15;
    C at 0 range 0 .. 7;
  end record;

  Init : constant Rec := ( 1515, 'A' );

  D1 : Derived;
  D2 : Derived;
  pragma Volatile (D2);
  for D2'Address use D1'Address;

begin
  D2 := Derived (Init);
  if D1 /= Derived (Init) then
    raise Program_Error;
  end if;
end;