diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r-- | gcc/testsuite/gnat.dg/loop_optimization10.adb | 18 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/loop_optimization10.ads | 11 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/loop_optimization10_pkg.ads | 12 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/private1-sub.ads | 13 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/private1.ads | 5 |
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; |