aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2022-10-07 18:43:46 +0000
committerMarc Poulhiès <poulhies@adacore.com>2022-11-04 14:47:29 +0100
commitfe960a3a19e47d7c2297a19758c914329c8c954e (patch)
tree332e99825bae7a3efb6f33d8f249f4456865272b /gcc/testsuite/gnat.dg
parent5f780a2d02d0b7c92a75ce1f749ffcc15b90fa32 (diff)
downloadgcc-fe960a3a19e47d7c2297a19758c914329c8c954e.zip
gcc-fe960a3a19e47d7c2297a19758c914329c8c954e.tar.gz
gcc-fe960a3a19e47d7c2297a19758c914329c8c954e.tar.bz2
ada: Flag unsupported dispatching constructor calls
gcc/ada/ * exp_intr.adb (Expand_Dispatching_Constructor_Call): Report an error on unsupported dispatching constructor calls and report a warning on calls that may fail at run time. gcc/testsuite/ * gnat.dg/abstract1.ads: Cleanup whitespaces. * gnat.dg/abstract1.adb: Likewise and add -gnatws to silence new warning.
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r--gcc/testsuite/gnat.dg/abstract1.adb14
-rw-r--r--gcc/testsuite/gnat.dg/abstract1.ads6
2 files changed, 11 insertions, 9 deletions
diff --git a/gcc/testsuite/gnat.dg/abstract1.adb b/gcc/testsuite/gnat.dg/abstract1.adb
index 97508fa..36f75e9 100644
--- a/gcc/testsuite/gnat.dg/abstract1.adb
+++ b/gcc/testsuite/gnat.dg/abstract1.adb
@@ -1,18 +1,20 @@
-- { dg-do compile }
+-- { dg-options "-gnatws" }
+
with Ada.Tags.Generic_Dispatching_Constructor; use Ada.Tags;
package body abstract1 is
-
+
function New_T (Stream : not null access Root_Stream_Type'Class)
return T'Class is
function Construct is
new Generic_Dispatching_Constructor (T, Root_Stream_Type'Class, Input);
E : constant String := String'Input (Stream);
I : constant Tag := Internal_Tag (E);
-
+
begin
return Construct (I, Stream);
end New_T;
-
+
function Input (Stream : not null access Root_Stream_Type'Class)
return IT is
begin
@@ -20,12 +22,12 @@ package body abstract1 is
Integer'Read (Stream, O.I);
end return;
end Input;
-
+
function Input (Stream : not null access Root_Stream_Type'Class)
return FT is
begin
return O : FT do
Float'Read (Stream, O.F);
- end return;
- end Input;
+ end return;
+ end Input;
end abstract1;
diff --git a/gcc/testsuite/gnat.dg/abstract1.ads b/gcc/testsuite/gnat.dg/abstract1.ads
index bad9ee6..de14d77 100644
--- a/gcc/testsuite/gnat.dg/abstract1.ads
+++ b/gcc/testsuite/gnat.dg/abstract1.ads
@@ -3,15 +3,15 @@ package abstract1 is
type T is abstract tagged limited null record;
function Input (Stream : not null access Root_Stream_Type'Class) return T
is abstract;
-
+
function New_T (Stream : not null access Root_Stream_Type'Class)
return T'Class;
-
+
type IT is limited new T with record
I : Integer;
end record;
function Input (Stream : not null access Root_Stream_Type'Class) return IT;
-
+
type FT is limited new T with record
F : Float;
end record;