diff options
author | Javier Miranda <miranda@adacore.com> | 2022-10-07 18:43:46 +0000 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2022-11-04 14:47:29 +0100 |
commit | fe960a3a19e47d7c2297a19758c914329c8c954e (patch) | |
tree | 332e99825bae7a3efb6f33d8f249f4456865272b /gcc/testsuite/gnat.dg | |
parent | 5f780a2d02d0b7c92a75ce1f749ffcc15b90fa32 (diff) | |
download | gcc-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.adb | 14 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/abstract1.ads | 6 |
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; |