aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/ada/acats/tests/c7/c731001.a
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/c7/c731001.a')
-rw-r--r--gcc/testsuite/ada/acats/tests/c7/c731001.a407
1 files changed, 0 insertions, 407 deletions
diff --git a/gcc/testsuite/ada/acats/tests/c7/c731001.a b/gcc/testsuite/ada/acats/tests/c7/c731001.a
deleted file mode 100644
index 0cfce32bc95..00000000000
--- a/gcc/testsuite/ada/acats/tests/c7/c731001.a
+++ /dev/null
@@ -1,407 +0,0 @@
--- C731001.A
---
--- Grant of Unlimited Rights
---
--- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687 and
--- F08630-91-C-0015, the U.S. Government obtained unlimited rights in the
--- software and documentation contained herein. Unlimited rights are
--- defined in DFAR 252.227-7013(a)(19). By making this public release,
--- the Government intends to confer upon all recipients unlimited rights
--- equal to those held by the Government. 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 GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--- WARRANTY AS TO ANY MATTER WHATSOVER, 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 inherited operations can be overridden, even when they are
--- inherited in a body.
--- The test cases here are inspired by the AARM examples given in
--- the discussion of AARM-7.3.1(7.a-7.v).
--- This discussion was confirmed by AI95-00035.
---
--- TEST DESCRIPTION
--- See AARM-7.3.1.
---
--- CHANGE HISTORY:
--- 29 JUN 1999 RAD Initial Version
--- 23 SEP 1999 RLB Improved comments, renamed, issued.
--- 20 AUG 2001 RLB Corrected 'verbose' flag.
---
---!
-
-with Report; use Report; pragma Elaborate_All(Report);
-package C731001_1 is
- pragma Elaborate_Body;
-private
- procedure Check_String(X, Y: String);
- function Check_String(X, Y: String) return String;
- -- This one is a function, so we can call it in package specs.
-end C731001_1;
-
-package body C731001_1 is
-
- Verbose: Boolean := False;
-
- procedure Check_String(X, Y: String) is
- begin
- if Verbose then
- Comment("""" & X & """ = """ & Y & """?");
- end if;
- if X /= Y then
- Failed("""" & X & """ should be """ & Y & """");
- end if;
- end Check_String;
-
- function Check_String(X, Y: String) return String is
- begin
- Check_String(X, Y);
- return X;
- end Check_String;
-
-end C731001_1;
-
-private package C731001_1.Parent is
-
- procedure Call_Main;
-
- type Root is tagged null record;
- subtype Renames_Root is Root;
- subtype Root_Class is Renames_Root'Class;
- function Make return Root;
- function Op1(X: Root) return String;
- function Call_Op2(X: Root'Class) return String;
-private
- function Op2(X: Root) return String;
-end C731001_1.Parent;
-
-procedure C731001_1.Parent.Main;
-
-with C731001_1.Parent.Main;
-package body C731001_1.Parent is
-
- procedure Call_Main is
- begin
- Main;
- end Call_Main;
-
- function Make return Root is
- Result: Root;
- begin
- return Result;
- end Make;
-
- function Op1(X: Root) return String is
- begin
- return "Parent.Op1 body";
- end Op1;
-
- function Op2(X: Root) return String is
- begin
- return "Parent.Op2 body";
- end Op2;
-
- function Call_Op2(X: Root'Class) return String is
- begin
- return Op2(X);
- end Call_Op2;
-
-begin
-
- Check_String(Op1(Root'(Make)), "Parent.Op1 body");
- Check_String(Op1(Root_Class(Root'(Make))), "Parent.Op1 body");
-
- Check_String(Op2(Root'(Make)), "Parent.Op2 body");
- Check_String(Op2(Root_Class(Root'(Make))), "Parent.Op2 body");
-
-end C731001_1.Parent;
-
-with C731001_1.Parent; use C731001_1.Parent;
-private package C731001_1.Unrelated is
-
- type T2 is new Root with null record;
- subtype T2_Class is T2'Class;
- function Make return T2;
- function Op2(X: T2) return String;
-end C731001_1.Unrelated;
-
-with C731001_1.Parent; use C731001_1.Parent;
- pragma Elaborate(C731001_1.Parent);
-package body C731001_1.Unrelated is
-
- function Make return T2 is
- Result: T2;
- begin
- return Result;
- end Make;
-
- function Op2(X: T2) return String is
- begin
- return "Unrelated.Op2 body";
- end Op2;
-begin
-
- Check_String(Op1(T2'(Make)), "Parent.Op1 body");
- Check_String(Op1(T2_Class(T2'(Make))), "Parent.Op1 body");
- Check_String(Op1(Root_Class(T2'(Make))), "Parent.Op1 body");
-
- Check_String(Op2(T2'(Make)), "Unrelated.Op2 body");
- Check_String(Op2(T2_Class(T2'(Make))), "Unrelated.Op2 body");
- Check_String(Call_Op2(T2'(Make)), "Parent.Op2 body");
- Check_String(Call_Op2(T2_Class(T2'(Make))), "Parent.Op2 body");
- Check_String(Call_Op2(Root_Class(T2'(Make))), "Parent.Op2 body");
-
-end C731001_1.Unrelated;
-
-package C731001_1.Parent.Child is
- pragma Elaborate_Body;
-
- type T3 is new Root with null record;
- subtype T3_Class is T3'Class;
- function Make return T3;
-
- T3_Obj: T3;
- T3_Class_Obj: T3_Class := T3_Obj;
- T3_Root_Class_Obj: Root_Class := T3_Obj;
-
- X3: constant String :=
- Check_String(Op1(T3_Obj), "Parent.Op1 body") &
- Check_String(Op1(T3_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T3_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T3_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T3_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T3_Root_Class_Obj), "Parent.Op2 body");
-
- package Nested is
- type T4 is new Root with null record;
- subtype T4_Class is T4'Class;
- function Make return T4;
-
- T4_Obj: T4;
- T4_Class_Obj: T4_Class := T4_Obj;
- T4_Root_Class_Obj: Root_Class := T4_Obj;
-
- X4: constant String :=
- Check_String(Op1(T4_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
- private
-
- XX4: constant String :=
- Check_String(Op1(T4_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
- end Nested;
-
- use Nested;
-
- XXX4: constant String :=
- Check_String(Op1(T4_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
-private
-
- XX3: constant String :=
- Check_String(Op1(T3_Obj), "Parent.Op1 body") &
- Check_String(Op1(T3_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T3_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T3_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T3_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T3_Root_Class_Obj), "Parent.Op2 body") &
-
- Check_String(Op2(T3_Obj), "Parent.Op2 body") &
- Check_String(Op2(T3_Class_Obj), "Parent.Op2 body") &
- Check_String(Op2(T3_Root_Class_Obj), "Parent.Op2 body");
-
- XXXX4: constant String :=
- Check_String(Op1(T4_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body") &
-
- Check_String(Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
-end C731001_1.Parent.Child;
-
-with C731001_1.Unrelated; use C731001_1.Unrelated;
- pragma Elaborate(C731001_1.Unrelated);
-package body C731001_1.Parent.Child is
-
- XXX3: constant String :=
- Check_String(Op1(T3_Obj), "Parent.Op1 body") &
- Check_String(Op1(T3_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T3_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T3_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T3_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T3_Root_Class_Obj), "Parent.Op2 body") &
-
- Check_String(Op2(T3_Obj), "Parent.Op2 body") &
- Check_String(Op2(T3_Class_Obj), "Parent.Op2 body") &
- Check_String(Op2(T3_Root_Class_Obj), "Parent.Op2 body");
-
- XXXXX4: constant String :=
- Check_String(Op1(T4_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body") &
-
- Check_String(Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
- function Make return T3 is
- Result: T3;
- begin
- return Result;
- end Make;
-
- package body Nested is
- function Make return T4 is
- Result: T4;
- begin
- return Result;
- end Make;
-
- XXXXXX4: constant String :=
- Check_String(Op1(T4_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body") &
-
- Check_String(Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
- end Nested;
-
- type T5 is new T2 with null record;
- subtype T5_Class is T5'Class;
- function Make return T5;
-
- function Make return T5 is
- Result: T5;
- begin
- return Result;
- end Make;
-
- XXXXXXX4: constant String :=
- Check_String(Op1(T4_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body") &
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body") &
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body") &
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body") &
-
- Check_String(Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
-end C731001_1.Parent.Child;
-
-procedure C731001_1.Main;
-
-with C731001_1.Parent;
-procedure C731001_1.Main is
-begin
- C731001_1.Parent.Call_Main;
-end C731001_1.Main;
-
-with C731001_1.Parent.Child;
- use C731001_1.Parent;
- use C731001_1.Parent.Child;
- use C731001_1.Parent.Child.Nested;
-with C731001_1.Unrelated; use C731001_1.Unrelated;
-procedure C731001_1.Parent.Main is
-
- Root_Obj: Root := Make;
- Root_Class_Obj: Root_Class := Root'(Make);
-
- T2_Obj: T2 := Make;
- T2_Class_Obj: T2_Class := T2_Obj;
- T2_Root_Class_Obj: Root_Class := T2_Class_Obj;
-
- T3_Obj: T3 := Make;
- T3_Class_Obj: T3_Class := T3_Obj;
- T3_Root_Class_Obj: Root_Class := T3_Obj;
-
- T4_Obj: T4 := Make;
- T4_Class_Obj: T4_Class := T4_Obj;
- T4_Root_Class_Obj: Root_Class := T4_Obj;
-
-begin
- Test("C731001_1", "Check that inherited operations can be overridden, even"
- & " when they are inherited in a body");
-
- Check_String(Op1(Root_Obj), "Parent.Op1 body");
- Check_String(Op1(Root_Class_Obj), "Parent.Op1 body");
-
- Check_String(Call_Op2(Root_Obj), "Parent.Op2 body");
- Check_String(Call_Op2(Root_Class_Obj), "Parent.Op2 body");
-
- Check_String(Op1(T2_Obj), "Parent.Op1 body");
- Check_String(Op1(T2_Class_Obj), "Parent.Op1 body");
- Check_String(Op1(T2_Root_Class_Obj), "Parent.Op1 body");
-
- Check_String(Op2(T2_Obj), "Unrelated.Op2 body");
- Check_String(Op2(T2_Class_Obj), "Unrelated.Op2 body");
- Check_String(Call_Op2(T2_Obj), "Parent.Op2 body");
- Check_String(Call_Op2(T2_Class_Obj), "Parent.Op2 body");
- Check_String(Call_Op2(T2_Root_Class_Obj), "Parent.Op2 body");
-
- Check_String(Op1(T3_Obj), "Parent.Op1 body");
- Check_String(Op1(T3_Class_Obj), "Parent.Op1 body");
- Check_String(Op1(T3_Root_Class_Obj), "Parent.Op1 body");
-
- Check_String(Call_Op2(T3_Obj), "Parent.Op2 body");
- Check_String(Call_Op2(T3_Class_Obj), "Parent.Op2 body");
- Check_String(Call_Op2(T3_Root_Class_Obj), "Parent.Op2 body");
-
- Check_String(Op1(T4_Obj), "Parent.Op1 body");
- Check_String(Op1(T4_Class_Obj), "Parent.Op1 body");
- Check_String(Op1(T4_Root_Class_Obj), "Parent.Op1 body");
-
- Check_String(Call_Op2(T4_Obj), "Parent.Op2 body");
- Check_String(Call_Op2(T4_Class_Obj), "Parent.Op2 body");
- Check_String(Call_Op2(T4_Root_Class_Obj), "Parent.Op2 body");
-
- Result;
-end C731001_1.Parent.Main;
-
-with C731001_1.Main;
-procedure C731001 is
-begin
- C731001_1.Main;
-end C731001;