diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/opt13_pkg.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/opt13_pkg.adb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/opt13_pkg.adb b/gcc/testsuite/gnat.dg/opt13_pkg.adb new file mode 100644 index 000000000..850022766 --- /dev/null +++ b/gcc/testsuite/gnat.dg/opt13_pkg.adb @@ -0,0 +1,31 @@ +package body Opt13_Pkg is + + subtype Index_Type is Natural range 0 .. 16; + + type Arr is array (Index_Type range <>) of Integer; + + type Rec is record + F1, F2, F3 : Float; + N : Natural; + B1, B2 : Boolean; + F4 : Float; + end record; + + type Data (D : Index_Type) is record + A : Arr (1 .. D); + R : Rec; + end record; + + Zero : constant Rec := (0.0, 0.0, 0.0, 0, False, False, 0.0); + + procedure Allocate (T : out My_Type) is + begin + T := new Data (Index_Type'last); + T.R := Zero; + + for I in 1 .. T.A'last loop + N := 1; + end loop; + end; + +end Opt13_Pkg; |