aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r--gcc/testsuite/gnat.dg/aggr24.adb13
-rw-r--r--gcc/testsuite/gnat.dg/aggr24_pkg.adb15
-rw-r--r--gcc/testsuite/gnat.dg/aggr24_pkg.ads16
-rw-r--r--gcc/testsuite/gnat.dg/discr53.adb19
-rw-r--r--gcc/testsuite/gnat.dg/discr53.ads16
-rw-r--r--gcc/testsuite/gnat.dg/discr53_pkg.ads5
-rw-r--r--gcc/testsuite/gnat.dg/prot3.adb8
-rw-r--r--gcc/testsuite/gnat.dg/prot3_pkg.adb17
-rw-r--r--gcc/testsuite/gnat.dg/prot3_pkg.ads16
-rw-r--r--gcc/testsuite/gnat.dg/specs/opt3.ads13
-rw-r--r--gcc/testsuite/gnat.dg/specs/opt3_pkg.ads7
11 files changed, 145 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/aggr24.adb b/gcc/testsuite/gnat.dg/aggr24.adb
new file mode 100644
index 00000000000..b739c54fdc4
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/aggr24.adb
@@ -0,0 +1,13 @@
+-- { dg-do run }
+
+with Aggr24_Pkg; use Aggr24_Pkg;
+
+procedure Aggr24 is
+ V : Rec;
+begin
+ V.S := "Hello";
+ Init (V);
+ if V.S /= "Hello" then
+ raise Program_Error;
+ end if;
+end;
diff --git a/gcc/testsuite/gnat.dg/aggr24_pkg.adb b/gcc/testsuite/gnat.dg/aggr24_pkg.adb
new file mode 100644
index 00000000000..2ae3e79e322
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/aggr24_pkg.adb
@@ -0,0 +1,15 @@
+package body Aggr24_Pkg is
+
+ procedure Init (R : out Rec) is
+ begin
+ R := (I1 => 0,
+ I2 => 0,
+ I3 => 0,
+ I4 => 0,
+ I5 => 0,
+ I6 => 0,
+ I7 => 0,
+ S => <>);
+ end;
+
+end Aggr24_Pkg;
diff --git a/gcc/testsuite/gnat.dg/aggr24_pkg.ads b/gcc/testsuite/gnat.dg/aggr24_pkg.ads
new file mode 100644
index 00000000000..5918f5e8bd4
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/aggr24_pkg.ads
@@ -0,0 +1,16 @@
+package Aggr24_Pkg is
+
+ type Rec is record
+ I1 : Integer;
+ I2 : Integer;
+ I3 : Integer;
+ I4 : Integer;
+ I5 : Integer;
+ I6 : Integer;
+ I7 : Integer;
+ S : String (1 .. 5);
+ end record;
+
+ procedure Init (R : out Rec);
+
+end Aggr24_Pkg;
diff --git a/gcc/testsuite/gnat.dg/discr53.adb b/gcc/testsuite/gnat.dg/discr53.adb
new file mode 100644
index 00000000000..2e362a7fd29
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/discr53.adb
@@ -0,0 +1,19 @@
+-- { dg-do compile }
+
+package body Discr53 is
+
+ function F return Rec is
+ Data : Rec;
+ begin
+ return Data;
+ end;
+
+ type Ptr is access Rec;
+
+ procedure Proc is
+ Local : Ptr;
+ begin
+ Local := new Rec'(F);
+ end;
+
+end Discr53;
diff --git a/gcc/testsuite/gnat.dg/discr53.ads b/gcc/testsuite/gnat.dg/discr53.ads
new file mode 100644
index 00000000000..3fa9f0f4845
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/discr53.ads
@@ -0,0 +1,16 @@
+with Discr53_Pkg;
+
+package Discr53 is
+
+ type Rec (D : Boolean := False) is record
+ case D is
+ when True => S : String (1 .. Discr53_Pkg.Max);
+ when False => null;
+ end case;
+ end record;
+
+ function F return Rec;
+
+ procedure Proc;
+
+end Discr53;
diff --git a/gcc/testsuite/gnat.dg/discr53_pkg.ads b/gcc/testsuite/gnat.dg/discr53_pkg.ads
new file mode 100644
index 00000000000..d36e1ba2a12
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/discr53_pkg.ads
@@ -0,0 +1,5 @@
+package Discr53_Pkg is
+
+ function Max return Natural;
+
+end Discr53_Pkg;
diff --git a/gcc/testsuite/gnat.dg/prot3.adb b/gcc/testsuite/gnat.dg/prot3.adb
new file mode 100644
index 00000000000..25390659238
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/prot3.adb
@@ -0,0 +1,8 @@
+-- { dg-do run }
+
+with Prot3_Pkg; use Prot3_Pkg;
+
+procedure Prot3 is
+begin
+ P.Foo (4);
+end;
diff --git a/gcc/testsuite/gnat.dg/prot3_pkg.adb b/gcc/testsuite/gnat.dg/prot3_pkg.adb
new file mode 100644
index 00000000000..07ae1829f60
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/prot3_pkg.adb
@@ -0,0 +1,17 @@
+package body Prot3_Pkg is
+
+ protected body Prot is
+ function Fn (J : Short_Integer) return Rec
+ is
+ begin
+ return (V1 => J * J,
+ V2 => J);
+ end;
+
+ procedure Foo (J : Short_Integer) is
+ begin
+ Val := Fn (J);
+ end;
+ end Prot;
+
+end Prot3_Pkg;
diff --git a/gcc/testsuite/gnat.dg/prot3_pkg.ads b/gcc/testsuite/gnat.dg/prot3_pkg.ads
new file mode 100644
index 00000000000..b4cce90a543
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/prot3_pkg.ads
@@ -0,0 +1,16 @@
+package Prot3_Pkg is
+
+ type Rec is record
+ V1 : Short_Integer;
+ V2 : Short_Integer;
+ end record with Volatile_Full_Access;
+
+ protected type Prot is
+ procedure Foo (J : Short_Integer);
+ private
+ Val : Rec;
+ end Prot;
+
+ P : Prot;
+
+end Prot3_Pkg;
diff --git a/gcc/testsuite/gnat.dg/specs/opt3.ads b/gcc/testsuite/gnat.dg/specs/opt3.ads
new file mode 100644
index 00000000000..531cf59eae3
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/opt3.ads
@@ -0,0 +1,13 @@
+-- { dg-do compile }
+-- { dg-options "-O3" }
+
+with Ada.Containers.Vectors;
+with Opt3_Pkg;
+
+package Opt3 is
+
+ type Arr is array (1 .. Opt3_Pkg.Max) of Integer;
+
+ package Arr_Container is new Ada.Containers.Vectors (Natural, Arr);
+
+end Opt3;
diff --git a/gcc/testsuite/gnat.dg/specs/opt3_pkg.ads b/gcc/testsuite/gnat.dg/specs/opt3_pkg.ads
new file mode 100644
index 00000000000..4145ac4abaa
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/opt3_pkg.ads
@@ -0,0 +1,7 @@
+-- { dg-excess-errors "no code generated" }
+
+package Opt3_Pkg is
+
+ function Max return Natural;
+
+end Opt3_Pkg;