diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled2.adb | 3 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled4.adb | 3 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/delta_aggr.adb | 51 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/elab3.adb | 9 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/elab3.ads | 3 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/elab3_pkg.adb | 11 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/elab3_pkg.ads | 7 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/finalized.adb | 1 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/gcov/check.adb | 27 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/gcov/gcov.exp | 44 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/opt69.adb | 28 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/out_param.adb | 21 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/overriding_ops2.adb | 8 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/overriding_ops2.ads | 12 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/overriding_ops2_pkg-high.ads | 5 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/overriding_ops2_pkg.ads | 9 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/unreferenced.adb | 11 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/vect18.adb | 2 |
18 files changed, 252 insertions, 3 deletions
diff --git a/gcc/testsuite/gnat.dg/controlled2.adb b/gcc/testsuite/gnat.dg/controlled2.adb index 4fa61aff805..69665c942ae 100644 --- a/gcc/testsuite/gnat.dg/controlled2.adb +++ b/gcc/testsuite/gnat.dg/controlled2.adb @@ -1,4 +1,5 @@ --- { dg-do compile } +-- { dg-do compile } +-- { dg-options "-gnatws" } with controlled1; use controlled1; package body controlled2 is diff --git a/gcc/testsuite/gnat.dg/controlled4.adb b/gcc/testsuite/gnat.dg/controlled4.adb index b823cc9f4e5..f8159c9204d 100644 --- a/gcc/testsuite/gnat.dg/controlled4.adb +++ b/gcc/testsuite/gnat.dg/controlled4.adb @@ -1,4 +1,5 @@ --- { dg-do compile } +-- { dg-do compile } +-- { dg-options "-gnatws" } package body controlled4 is procedure Test_Suite is diff --git a/gcc/testsuite/gnat.dg/delta_aggr.adb b/gcc/testsuite/gnat.dg/delta_aggr.adb new file mode 100644 index 00000000000..57e0a69693a --- /dev/null +++ b/gcc/testsuite/gnat.dg/delta_aggr.adb @@ -0,0 +1,51 @@ +-- { dg-do compile } +-- { dg-options "-gnat2020" } + +procedure Delta_Aggr is + type T1 is tagged record + F1, F2, F3 : Integer := 0; + end record; + + function Make (X : Integer) return T1 is + begin + return (10, 20, 30); + end Make; + + package Pkg is + type T2 is new T1 with private; + X, Y : constant T2; + function Make (X : Integer) return T2; + private + type T2 is new T1 with + record + F4 : Integer := 0; + end record; + X : constant T2 := (0, 0, 0, 0); + Y : constant T2 := (1, 2, 0, 0); + end Pkg; + + package body Pkg is + function Make (X : Integer) return T2 is + begin + return (X, X ** 2, X ** 3, X ** 4); + end Make; + end Pkg; + + use Pkg; + + Z : T2 := (Y with delta F1 => 111); + + -- a legal delta aggregate whose type is a private extension + pragma Assert (Y = (X with delta F1 => 1, F2 => 2)); + pragma assert (Y.F2 = X.F1); + +begin + Z := (X with delta F1 => 1); + + -- The base of the delta aggregate can be overloaded, in which case + -- the candidate interpretations for the aggregate are those of the + -- base, to be resolved from context. + + Z := (Make (2) with delta F1 => 1); + null; +end Delta_Aggr; diff --git a/gcc/testsuite/gnat.dg/elab3.adb b/gcc/testsuite/gnat.dg/elab3.adb new file mode 100644 index 00000000000..2c0a4b2df25 --- /dev/null +++ b/gcc/testsuite/gnat.dg/elab3.adb @@ -0,0 +1,9 @@ +-- { dg-do compile } + +with Elab3_Pkg; + +package body Elab3 is + package Inst is new Elab3_Pkg (False, ABE); + + procedure ABE is begin null; end ABE; +end Elab3; diff --git a/gcc/testsuite/gnat.dg/elab3.ads b/gcc/testsuite/gnat.dg/elab3.ads new file mode 100644 index 00000000000..92fd4c3821b --- /dev/null +++ b/gcc/testsuite/gnat.dg/elab3.ads @@ -0,0 +1,3 @@ +package Elab3 is + procedure ABE; +end Elab3; diff --git a/gcc/testsuite/gnat.dg/elab3_pkg.adb b/gcc/testsuite/gnat.dg/elab3_pkg.adb new file mode 100644 index 00000000000..76616d00eaf --- /dev/null +++ b/gcc/testsuite/gnat.dg/elab3_pkg.adb @@ -0,0 +1,11 @@ +package body Elab3_Pkg is + procedure Elaborator is + begin + Proc; + end Elaborator; + +begin + if Elaborate then + Elaborator; + end if; +end Elab3_Pkg; diff --git a/gcc/testsuite/gnat.dg/elab3_pkg.ads b/gcc/testsuite/gnat.dg/elab3_pkg.ads new file mode 100644 index 00000000000..b4abf3a6a42 --- /dev/null +++ b/gcc/testsuite/gnat.dg/elab3_pkg.ads @@ -0,0 +1,7 @@ +generic + Elaborate : Boolean := True; + with procedure Proc; + +package Elab3_Pkg is + procedure Elaborator; +end Elab3_Pkg; diff --git a/gcc/testsuite/gnat.dg/finalized.adb b/gcc/testsuite/gnat.dg/finalized.adb index 36400d53ecc..a8d2f8808c6 100644 --- a/gcc/testsuite/gnat.dg/finalized.adb +++ b/gcc/testsuite/gnat.dg/finalized.adb @@ -1,4 +1,5 @@ -- { dg-do compile } +-- { dg-options "-gnatws" } with Ada.Finalization; use Ada.Finalization; procedure finalized is diff --git a/gcc/testsuite/gnat.dg/gcov/check.adb b/gcc/testsuite/gnat.dg/gcov/check.adb new file mode 100644 index 00000000000..b3cb8e36b92 --- /dev/null +++ b/gcc/testsuite/gnat.dg/gcov/check.adb @@ -0,0 +1,27 @@ +-- { dg-options "-fprofile-arcs -ftest-coverage" } +-- { dg-do run { target native } } */ + +procedure Check is + + function Add1 (I1, I2 : Integer) return Integer is + begin + return I1 + I2; -- count(1) + end; + + function Add2 (I1, I2 : Integer) return Integer is + pragma Suppress (Overflow_Check); + begin + return I1 + I2; -- count(1) + end; + +begin + if Add1 (1, 2) /= 3 then + raise Program_Error; + end if; + + if Add2 (1, 2) /= 3 then + raise Program_Error; + end if; +end; + +-- { dg-final { run-gcov check.adb } } diff --git a/gcc/testsuite/gnat.dg/gcov/gcov.exp b/gcc/testsuite/gnat.dg/gcov/gcov.exp new file mode 100644 index 00000000000..732ff877638 --- /dev/null +++ b/gcc/testsuite/gnat.dg/gcov/gcov.exp @@ -0,0 +1,44 @@ +# Copyright (C) 1997-2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# Gcov test driver. + +# Load support procs. +load_lib gnat-dg.exp +load_lib gcov.exp + +global GCC_UNDER_TEST + +# For now find gcov in the same directory as $GCC_UNDER_TEST. +if { ![is_remote host] && [string match "*/*" [lindex $GCC_UNDER_TEST 0]] } { + set GCOV [file dirname [lindex $GCC_UNDER_TEST 0]]/gcov +} else { + set GCOV gcov +} + +# Initialize harness. +dg-init + +# Delete old .gcda files. +set files [glob -nocomplain *.gcda] +if { $files != "" } { + eval "remote_file build delete $files" +} + +# Main loop. +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.adb]] "" "" + +dg-finish diff --git a/gcc/testsuite/gnat.dg/opt69.adb b/gcc/testsuite/gnat.dg/opt69.adb new file mode 100644 index 00000000000..e8c94dae2dc --- /dev/null +++ b/gcc/testsuite/gnat.dg/opt69.adb @@ -0,0 +1,28 @@ +-- { dg-do compile } +-- { dg-options "-O" } + +with Ada.Text_IO; + +procedure Opt69 is + + procedure Inner + (A : String := (1 .. 15 => ASCII.NUL); + B : String := (1 .. 5 => ASCII.NUL); + C : String := (1 .. 5 => ASCII.NUL)) + is + Aa : String (1 .. 15); + Bb : String (1 .. 5); + Cc : String (1 .. 5); + begin + Aa := A; + Bb := B; + Cc := C; + + Ada.Text_IO.Put_Line (Aa); + Ada.Text_IO.Put_Line (Bb); + Ada.Text_IO.Put_Line (Cc); + end; + +begin + Inner; +end; diff --git a/gcc/testsuite/gnat.dg/out_param.adb b/gcc/testsuite/gnat.dg/out_param.adb new file mode 100644 index 00000000000..14a2f94ea2a --- /dev/null +++ b/gcc/testsuite/gnat.dg/out_param.adb @@ -0,0 +1,21 @@ +-- { dg-do compile } +-- { dg-options "-gnat83" } + +procedure Out_Param + (Source : in String; Dest : out String; Char_Count : out Natural) is +begin + --| Logic_Step: + --| Copy string Source to string Dest + Dest := (others => ' '); + Char_Count := 0; + if Source'Length > 0 and then Dest'Length > 0 then + if Source'Length > Dest'Length then + Char_Count := Dest'Length; + else + Dest (Dest'First .. (Dest'First + Source'Length - 1)) := Source; + Char_Count := Source'Length; + end if; + else + null; + end if; +end Out_Param; diff --git a/gcc/testsuite/gnat.dg/overriding_ops2.adb b/gcc/testsuite/gnat.dg/overriding_ops2.adb new file mode 100644 index 00000000000..9ab2f5c507e --- /dev/null +++ b/gcc/testsuite/gnat.dg/overriding_ops2.adb @@ -0,0 +1,8 @@ +-- { dg-do compile } + +package body Overriding_Ops2 is + overriding procedure Finalize (Self : in out Consumer) is + begin + null; + end Finalize; +end Overriding_Ops2; diff --git a/gcc/testsuite/gnat.dg/overriding_ops2.ads b/gcc/testsuite/gnat.dg/overriding_ops2.ads new file mode 100644 index 00000000000..695cffb1947 --- /dev/null +++ b/gcc/testsuite/gnat.dg/overriding_ops2.ads @@ -0,0 +1,12 @@ +with Overriding_Ops2_Pkg.High; + +package Overriding_Ops2 is + type Consumer is tagged limited private; +private + type Consumer is + limited + new Overriding_Ops2_Pkg.High.High_Level_Session + with null record; + + overriding procedure Finalize (Self : in out Consumer); +end Overriding_Ops2; diff --git a/gcc/testsuite/gnat.dg/overriding_ops2_pkg-high.ads b/gcc/testsuite/gnat.dg/overriding_ops2_pkg-high.ads new file mode 100644 index 00000000000..46eb4629f4e --- /dev/null +++ b/gcc/testsuite/gnat.dg/overriding_ops2_pkg-high.ads @@ -0,0 +1,5 @@ +package Overriding_Ops2_Pkg.High is + type High_Level_Session is new Session_Type with private; +private + type High_Level_Session is new Session_Type with null record; +end Overriding_Ops2_Pkg.High; diff --git a/gcc/testsuite/gnat.dg/overriding_ops2_pkg.ads b/gcc/testsuite/gnat.dg/overriding_ops2_pkg.ads new file mode 100644 index 00000000000..85c8f0b6afb --- /dev/null +++ b/gcc/testsuite/gnat.dg/overriding_ops2_pkg.ads @@ -0,0 +1,9 @@ +with Ada.Finalization; + +package Overriding_Ops2_Pkg is + type Session_Type is abstract tagged limited private; + procedure Finalize (Session : in out Session_Type); +private + type Session_Type is + abstract new Ada.Finalization.Limited_Controlled with null record; +end Overriding_Ops2_Pkg; diff --git a/gcc/testsuite/gnat.dg/unreferenced.adb b/gcc/testsuite/gnat.dg/unreferenced.adb new file mode 100644 index 00000000000..5b047c26a61 --- /dev/null +++ b/gcc/testsuite/gnat.dg/unreferenced.adb @@ -0,0 +1,11 @@ +-- { dg-do compile } +-- { dg-options "-gnatd.F" } + +procedure Unreferenced is + X : aliased Integer; + Y : access Integer := X'Access; + Z : Integer renames Y.all; + pragma Unreferenced (Z); +begin + null; +end Unreferenced; diff --git a/gcc/testsuite/gnat.dg/vect18.adb b/gcc/testsuite/gnat.dg/vect18.adb index 91b1175248d..8739f9f1eb6 100644 --- a/gcc/testsuite/gnat.dg/vect18.adb +++ b/gcc/testsuite/gnat.dg/vect18.adb @@ -1,5 +1,5 @@ -- { dg-do compile { target i?86-*-* x86_64-*-* } } --- { dg-options "-O3 -msse2 -fdump-tree-vect-details" } +-- { dg-options "-O3 -msse2 -fdump-tree-vect-details -fno-predictive-commoning" } package body Vect18 is |