| -- { dg-do compile } |
| -- { dg-options "-O" } |
| |
| package body Array29 is |
| |
| procedure Copy (Src : in Matrix; Dst : out Matrix) is |
| begin |
| for I in Src'Range (1) loop |
| for J in Src'Range (2) loop |
| Dst (I, J) := Src (I, J); |
| end loop; |
| end loop; |
| end; |
| |
| procedure Proc is |
| N : constant := 2; |
| FM1 : constant Matrix (1 .. N, 1 .. N) := ((1.0, 2.0), (3.0, 4.0)); |
| FM2 : constant Matrix (1 .. N, 1 .. N) := ((1.0, 2.0), (3.0, 4.0)); |
| A : constant array (1 .. 2) of Matrix (1 .. N, 1 .. N) |
| := (Matrix (FM1), Matrix (FM2)); |
| Final : Matrix (1 .. N, 1 .. N); |
| begin |
| Copy (Src => A (1), Dst => Final); |
| end; |
| |
| end Array29; |