view gcc/testsuite/gnat.dg/self_aggregate_with_pointer.adb @ 143:76e1cf5455ef

add cbc_gc test
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:24:05 +0900
parents 04ced10e8804
children
line wrap: on
line source

-- { dg-do run }

procedure self_aggregate_with_pointer is

  type Arr is array (Natural range <>) of Integer;

  type Rec (N : Natural) is record
    A : Arr (1..N);
  end record;

  type Acc_Rec is access all Rec;

  type SRec is record
    A : Acc_Rec;
    I1, I2, I3, I4, I5, I6, I7: Integer;
  end record;

  R : aliased Rec (1);
  S : Srec := (A => R'Access, others => 0);

begin
  S := (A => S.A, others => 0);
  if S.A /= R'Access then
    raise Program_Error;
  end if;
end;