diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled6.adb | 24 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb | 21 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads | 22 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled6_pkg.ads | 15 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/pack18.adb | 12 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/pack18_pkg.ads | 21 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/aggr5.ads | 19 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/vect7.adb | 20 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/vect7.ads | 15 |
9 files changed, 169 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/controlled6.adb b/gcc/testsuite/gnat.dg/controlled6.adb new file mode 100644 index 00000000000..88640de7bea --- /dev/null +++ b/gcc/testsuite/gnat.dg/controlled6.adb @@ -0,0 +1,24 @@ +-- { dg-do compile } +-- { dg-options "-O -gnatn" } + +with Ada.Text_IO; use Ada.Text_IO; +with Controlled6_Pkg; +with Controlled6_Pkg.Iterators; + +procedure Controlled6 is + + type String_Access is access String; + + package My_Q is new Controlled6_Pkg (String_Access); + package My_Iterators is new My_Q.Iterators (0); + use My_Iterators; + + Iterator : Iterator_Type := Find; + +begin + loop + exit when Is_Null (Iterator); + Put (Current (Iterator).all & ' '); + Find_Next (Iterator); + end loop; +end; diff --git a/gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb b/gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb new file mode 100644 index 00000000000..201a75c94cc --- /dev/null +++ b/gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb @@ -0,0 +1,21 @@ +package body Controlled6_Pkg.Iterators is + + function Find return Iterator_Type is + Iterator : Iterator_Type; + begin + return Iterator; + end Find; + + function Current (Iterator : in Iterator_Type) return T is begin + return Iterator.Current.Item; + end Current; + + procedure Find_Next (Iterator : in out Iterator_Type) is begin + Iterator.Current := null; + end Find_Next; + + function Is_Null (Iterator : in Iterator_Type) return Boolean is begin + return Iterator.Current = null; + end Is_Null; + +end Controlled6_Pkg.Iterators; diff --git a/gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads b/gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads new file mode 100644 index 00000000000..89330f6a3ba --- /dev/null +++ b/gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads @@ -0,0 +1,22 @@ +with Ada.Finalization; + +generic + + I : Integer; + +package Controlled6_Pkg.Iterators is + + type Iterator_Type is new Ada.Finalization.Controlled with record + Current : Node_Access_Type; + end record; + + function Find return Iterator_Type; + + function Current (Iterator : in Iterator_Type) return T; + pragma Inline (Current); + + procedure Find_Next (Iterator : in out Iterator_Type); + + function Is_Null (Iterator : in Iterator_Type) return Boolean; + +end Controlled6_Pkg.Iterators; diff --git a/gcc/testsuite/gnat.dg/controlled6_pkg.ads b/gcc/testsuite/gnat.dg/controlled6_pkg.ads new file mode 100644 index 00000000000..2f1052be981 --- /dev/null +++ b/gcc/testsuite/gnat.dg/controlled6_pkg.ads @@ -0,0 +1,15 @@ +with Ada.Finalization; + +generic + + type T is private; + +package Controlled6_Pkg is + + type Node_Type is record + Item : T; + end record; + + type Node_Access_Type is access Node_Type; + +end Controlled6_Pkg; diff --git a/gcc/testsuite/gnat.dg/pack18.adb b/gcc/testsuite/gnat.dg/pack18.adb new file mode 100644 index 00000000000..857a6f9787e --- /dev/null +++ b/gcc/testsuite/gnat.dg/pack18.adb @@ -0,0 +1,12 @@ +-- { dg-do run } + +with Pack18_Pkg; use Pack18_Pkg; + +procedure Pack18 is + use Pack18_Pkg.Attributes_Tables; + Table : Instance; +begin + Init (Table); + Set_Last (Table, 1); + Table.Table (Last (Table)).N := 0; +end; diff --git a/gcc/testsuite/gnat.dg/pack18_pkg.ads b/gcc/testsuite/gnat.dg/pack18_pkg.ads new file mode 100644 index 00000000000..2b63fbab063 --- /dev/null +++ b/gcc/testsuite/gnat.dg/pack18_pkg.ads @@ -0,0 +1,21 @@ +with GNAT.Dynamic_Tables; + +package Pack18_Pkg is + + type String_Access is access String; + + type Rec is record + S : String_Access; + B : Boolean; + N : Natural; + end record; + pragma Pack (Rec); + + package Attributes_Tables is new GNAT.Dynamic_Tables + (Table_Component_Type => Rec, + Table_Index_Type => Natural, + Table_Low_Bound => 1, + Table_Initial => 200, + Table_Increment => 200); + +end Pack18_Pkg; diff --git a/gcc/testsuite/gnat.dg/specs/aggr5.ads b/gcc/testsuite/gnat.dg/specs/aggr5.ads new file mode 100644 index 00000000000..ba1e695bca2 --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/aggr5.ads @@ -0,0 +1,19 @@ +-- { dg-do compile } + +pragma Restrictions (No_Elaboration_Code); + +package Aggr5 is + + type R is record + C : Character; + F : Float; + end record; + + for R use record + C at 0 range 0 .. 7; + F at 1 range 0 .. 31; + end record; + + My_R : R := (C => 'A', F => 1.0); + +end Aggr5; diff --git a/gcc/testsuite/gnat.dg/vect7.adb b/gcc/testsuite/gnat.dg/vect7.adb new file mode 100644 index 00000000000..7911cc812c6 --- /dev/null +++ b/gcc/testsuite/gnat.dg/vect7.adb @@ -0,0 +1,20 @@ +-- { dg-do compile } + +package body Vect7 is + + procedure Assign is + v1 : constant v4sf := (-1.0, -2.0, -3.0, -4.0); + v2 : v4sf := v1; + v3 : v4sf; + begin + v3 := vzero; + v3 := vconst; + v3 := v1; + v3 := v2; + v3 := (1.0, -2.0, 3.0, -4.0); + v3 := (1.0, -2.0, 3.0, F); + + v2 := vzero; + end; + +end Vect7; diff --git a/gcc/testsuite/gnat.dg/vect7.ads b/gcc/testsuite/gnat.dg/vect7.ads new file mode 100644 index 00000000000..faf01679e23 --- /dev/null +++ b/gcc/testsuite/gnat.dg/vect7.ads @@ -0,0 +1,15 @@ +package Vect7 is + + type v4sf is array (1 .. 4) of Float; + for v4sf'Alignment use 16; + pragma Machine_Attribute (v4sf, "vector_type"); + + vzero : constant v4sf := (0.0, 0.0, 0.0, 0.0); + vconst : constant v4sf := (1.0, 2.0, 3.0, 4.0); + vvar : v4sf := vconst; + + F : Float := 5.0; + + procedure Assign; + +end Vect7; |