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/loop_optimization10.adb18
-rw-r--r--gcc/testsuite/gnat.dg/loop_optimization10.ads11
-rw-r--r--gcc/testsuite/gnat.dg/loop_optimization10_pkg.ads12
-rw-r--r--gcc/testsuite/gnat.dg/specs/private1-sub.ads13
-rw-r--r--gcc/testsuite/gnat.dg/specs/private1.ads5
5 files changed, 59 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/loop_optimization10.adb b/gcc/testsuite/gnat.dg/loop_optimization10.adb
new file mode 100644
index 00000000000..3b8e8949e1a
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/loop_optimization10.adb
@@ -0,0 +1,18 @@
+-- { dg-do compile }
+-- { dg-options "-O3" }
+-- { dg-options "-O3 -msse2" { target i?86-*-* x86_64-*-* } }
+
+package body Loop_Optimization10 is
+
+ function F (Low, High : in Array_Real_Type) return Array_Limit_Type is
+ Result : Array_Limit_Type;
+ begin
+ for I in Result'Range
+ loop
+ Result (I) := F (Low (I), High (I));
+ end loop;
+ return Result;
+ end;
+
+end Loop_Optimization10;
+
diff --git a/gcc/testsuite/gnat.dg/loop_optimization10.ads b/gcc/testsuite/gnat.dg/loop_optimization10.ads
new file mode 100644
index 00000000000..2f4872d1b5a
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/loop_optimization10.ads
@@ -0,0 +1,11 @@
+with Loop_Optimization10_Pkg; use Loop_Optimization10_Pkg;
+package Loop_Optimization10 is
+
+ type Dual_Axis_Type is (One, Two);
+
+ type Array_Real_Type is array (Dual_Axis_Type) of Float;
+ type Array_Limit_Type is array (Dual_Axis_Type) of Limit_Type;
+
+ function F (Low, High : in Array_Real_Type) return Array_Limit_Type;
+
+end Loop_Optimization10;
diff --git a/gcc/testsuite/gnat.dg/loop_optimization10_pkg.ads b/gcc/testsuite/gnat.dg/loop_optimization10_pkg.ads
new file mode 100644
index 00000000000..6fce4df8a3e
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/loop_optimization10_pkg.ads
@@ -0,0 +1,12 @@
+package Loop_Optimization10_Pkg is
+
+ pragma Pure (Loop_Optimization10_Pkg);
+
+ type Limit_Type is record
+ Low : Float;
+ High : Float;
+ end record;
+
+ function F (Low, High : in Float) return Limit_Type;
+
+end Loop_Optimization10_Pkg;
diff --git a/gcc/testsuite/gnat.dg/specs/private1-sub.ads b/gcc/testsuite/gnat.dg/specs/private1-sub.ads
new file mode 100644
index 00000000000..0dcbbd0569c
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/private1-sub.ads
@@ -0,0 +1,13 @@
+-- { dg-do compile }
+-- { dg-options "-gnatct" }
+
+package Private1.Sub is
+
+ package Nested is
+ type T is limited private;
+ function "=" (X, Y : T) return Boolean;
+ private
+ type T is new Private1.T;
+ end Nested;
+
+end Private1.Sub;
diff --git a/gcc/testsuite/gnat.dg/specs/private1.ads b/gcc/testsuite/gnat.dg/specs/private1.ads
new file mode 100644
index 00000000000..4ef06004352
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/private1.ads
@@ -0,0 +1,5 @@
+package Private1 is
+ type T is private;
+private
+ type T is new Boolean;
+end Private1;