diff options
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/cc/cc51008.a')
-rw-r--r-- | gcc/testsuite/ada/acats/tests/cc/cc51008.a | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/gcc/testsuite/ada/acats/tests/cc/cc51008.a b/gcc/testsuite/ada/acats/tests/cc/cc51008.a new file mode 100644 index 000000000..b95ae6cf0 --- /dev/null +++ b/gcc/testsuite/ada/acats/tests/cc/cc51008.a @@ -0,0 +1,124 @@ +-- CC51008.A +-- +-- Grant of Unlimited Rights +-- +-- The Ada Conformity Assessment Authority (ACAA) holds unlimited +-- rights in the software and documentation contained herein. Unlimited +-- rights are the same as those granted by the U.S. Government for older +-- parts of the Ada Conformity Assessment Test Suite, and are defined +-- in DFAR 252.227-7013(a)(19). By making this public release, the ACAA +-- intends to confer upon all recipients unlimited rights equal to those +-- held by the ACAA. These rights include rights to use, duplicate, +-- release or disclose the released technical data and computer software +-- in whole or in part, in any manner and for any purpose whatsoever, and +-- to have or permit others to do so. +-- +-- DISCLAIMER +-- +-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR +-- DISCLOSED ARE AS IS. THE ACAA MAKES NO EXPRESS OR IMPLIED +-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE +-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE +-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A +-- PARTICULAR PURPOSE OF SAID MATERIAL. +--* +-- +-- OBJECTIVE: +-- Check that operations are inherited for a formal derived type whose +-- ancestor is also a formal type as described in the corrigendum. +-- (Defect Report 8652/0038, as reflected in Technical Corrigendum 1, +-- RM95 12.5.1(21/1)). +-- +-- CHANGE HISTORY: +-- 29 Jan 2001 PHL Initial version. +-- 30 Apr 2002 RLB Readied for release. +-- +--! +package CC51008_0 is + + type R0 is + record + C : Float; + end record; + + procedure S (X : R0); + +end CC51008_0; + +with Report; +use Report; +package body CC51008_0 is + procedure S (X : R0) is + begin + Comment ("CC51008_0.S called"); + end S; +end CC51008_0; + +with CC51008_0; +generic + type F1 is new CC51008_0.R0; + type F2 is new F1; +package CC51008_1 is + procedure G (O1 : F1; O2 : F2); +end CC51008_1; + +package body CC51008_1 is + procedure G (O1 : F1; O2 : F2) is + begin + S (O1); + S (O2); + end G; +end CC51008_1; + +with CC51008_0; +package CC51008_2 is + type R2 is new CC51008_0.R0; + procedure S (X : out R2); +end CC51008_2; + +with Report; +use Report; +package body CC51008_2 is + procedure S (X : out R2) is + begin + Failed ("CC51008_2.S called"); + end S; +end CC51008_2; + +with CC51008_2; +package CC51008_3 is + type R3 is new CC51008_2.R2; + procedure S (X : R3); +end CC51008_3; + +with Report; +use Report; +package body CC51008_3 is + procedure S (X : R3) is + begin + Failed ("CC51008_3.S called"); + end S; +end CC51008_3; + +with CC51008_1; +with CC51008_2; +with CC51008_3; +with Report; +use Report; +procedure CC51008 is + + package Inst is new CC51008_1 (CC51008_2.R2, + CC51008_3.R3); + + X2 : constant CC51008_2.R2 := (C => 2.0); + X3 : constant CC51008_3.R3 := (C => 3.0); + +begin + Test ("CC51008", + "Check that operations are inherited for a formal derived " & + "type whose ancestor is also a formal type as described in " & + "RM95 12.5.1(21/1)"); + Inst.G (X2, X3); + Result; +end CC51008; + |