aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/ada/acats/tests/c7/c760012.a
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/c7/c760012.a')
-rw-r--r--gcc/testsuite/ada/acats/tests/c7/c760012.a256
1 files changed, 0 insertions, 256 deletions
diff --git a/gcc/testsuite/ada/acats/tests/c7/c760012.a b/gcc/testsuite/ada/acats/tests/c7/c760012.a
deleted file mode 100644
index 08986a838c4..00000000000
--- a/gcc/testsuite/ada/acats/tests/c7/c760012.a
+++ /dev/null
@@ -1,256 +0,0 @@
--- C760012.A
---
--- Grant of Unlimited Rights
---
--- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--- F08630-91-C-0015, and DCA100-97-D-0025, 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 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 record components that have per-object access discriminant
--- constraints are initialized in the order of their component
--- declarations, and after any components that are not so constrained.
---
--- Check that record components that have per-object access discriminant
--- constraints are finalized in the reverse order of their component
--- declarations, and before any components that are not so constrained.
---
--- TEST DESCRIPTION:
--- The type List_Item is the "container" type. It holds two fields that
--- have per-object access discriminant constraints, and two fields that
--- are not discriminated. These four fields are all controlled types.
--- A fifth field is a pointer used to maintain a linked list of these
--- data objects. Each component is of a unique type which allows for
--- the test to simply track the order of initialization and finalization.
---
--- The types and their purpose are:
--- Constrained_First - a controlled discriminated type
--- Constrained_Second - a controlled discriminated type
--- Simple_First - a controlled type with no discriminant
--- Simple_Second - a controlled type with no discriminant
---
--- The required order of operations:
--- Initialize
--- ( Simple_First | Simple_Second ) -- no "internal order" required
--- Constrained_First
--- Constrained_Second
--- Finalize
--- Constrained_Second
--- Constrained_First
--- ( Simple_First | Simple_Second ) -- must be inverse of init.
---
---
--- CHANGE HISTORY:
--- 23 MAY 95 SAIC Initial version
--- 02 MAY 96 SAIC Reorganized for 2.1
--- 05 DEC 96 SAIC Simplified for 2.1; added init/fin ordering check
--- 31 DEC 97 EDS Remove references to and uses of
--- Initialization_Sequence
---!
-
----------------------------------------------------------------- C760012_0
-
-with Ada.Finalization;
-with Ada.Unchecked_Deallocation;
-package C760012_0 is
-
- type List_Item;
-
- type List is access all List_Item;
-
- package Firsts is -- distinguish first from second
- type Constrained_First(Container : access List_Item) is
- new Ada.Finalization.Limited_Controlled with null record;
- procedure Initialize( T : in out Constrained_First );
- procedure Finalize ( T : in out Constrained_First );
-
- type Simple_First is new Ada.Finalization.Controlled with
- record
- My_Init_Seq_Number : Natural;
- end record;
- procedure Initialize( T : in out Simple_First );
- procedure Finalize ( T : in out Simple_First );
-
- end Firsts;
-
- type Constrained_Second(Container : access List_Item) is
- new Ada.Finalization.Limited_Controlled with null record;
- procedure Initialize( T : in out Constrained_Second );
- procedure Finalize ( T : in out Constrained_Second );
-
- type Simple_Second is new Ada.Finalization.Controlled with
- record
- My_Init_Seq_Number : Natural;
- end record;
- procedure Initialize( T : in out Simple_Second );
- procedure Finalize ( T : in out Simple_Second );
-
- -- by 3.8(18);6.0 the following type contains components constrained
- -- by per-object expressions
-
-
- type List_Item is new Ada.Finalization.Limited_Controlled
- with record
- ContentA : Firsts.Constrained_First( List_Item'Access ); -- C S
- SimpleA : Firsts.Simple_First; -- A T
- SimpleB : Simple_Second; -- A T
- ContentB : Constrained_Second( List_Item'Access ); -- D R
- Next : List; -- | |
- end record; -- | |
- procedure Initialize( L : in out List_Item ); ------------------+ |
- procedure Finalize ( L : in out List_Item ); --------------------+
-
- -- the tags are the same for SimpleA and SimpleB due to the fact that
- -- the language does not specify an ordering with respect to this
- -- component pair. 7.6(12) does specify the rest of the ordering.
-
- procedure Deallocate is new Ada.Unchecked_Deallocation(List_Item,List);
-
-end C760012_0;
-
--- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-with TCTouch;
-package body C760012_0 is
-
- package body Firsts is
-
- procedure Initialize( T : in out Constrained_First ) is
- begin
- TCTouch.Touch('C'); ----------------------------------------------- C
- end Initialize;
-
- procedure Finalize ( T : in out Constrained_First ) is
- begin
- TCTouch.Touch('S'); ----------------------------------------------- S
- end Finalize;
-
- procedure Initialize( T : in out Simple_First ) is
- begin
- T.My_Init_Seq_Number := 0;
- TCTouch.Touch('A'); ----------------------------------------------- A
- end Initialize;
-
- procedure Finalize ( T : in out Simple_First ) is
- begin
- TCTouch.Touch('T'); ----------------------------------------------- T
- end Finalize;
-
- end Firsts;
-
- procedure Initialize( T : in out Constrained_Second ) is
- begin
- TCTouch.Touch('D'); ------------------------------------------------- D
- end Initialize;
-
- procedure Finalize ( T : in out Constrained_Second ) is
- begin
- TCTouch.Touch('R'); ------------------------------------------------- R
- end Finalize;
-
-
- procedure Initialize( T : in out Simple_Second ) is
- begin
- T.My_Init_Seq_Number := 0;
- TCTouch.Touch('A'); ------------------------------------------------- A
- end Initialize;
-
- procedure Finalize ( T : in out Simple_Second ) is
- begin
- TCTouch.Touch('T'); ------------------------------------------------- T
- end Finalize;
-
- procedure Initialize( L : in out List_Item ) is
- begin
- TCTouch.Touch('F'); ------------------------------------------------- F
- end Initialize;
-
- procedure Finalize ( L : in out List_Item ) is
- begin
- TCTouch.Touch('Q'); ------------------------------------------------- Q
- end Finalize;
-
-end C760012_0;
-
---------------------------------------------------------------------- C760012
-
-with Report;
-with TCTouch;
-with C760012_0;
-procedure C760012 is
-
- use type C760012_0.List;
-
- procedure Subtest_1 is
- -- by 3.8(18);6.0 One_Of_Them is constrained by per-object constraints
- -- 7.6.1(9);6.0 dictates the order of finalization of the components
-
- One_Of_Them : C760012_0.List_Item;
- begin
- if One_Of_Them.Next /= null then -- just to hold the subtest in place
- Report.Failed("No default value for Next");
- end if;
- end Subtest_1;
-
- List : C760012_0.List;
-
- procedure Subtest_2 is
- begin
-
- List := new C760012_0.List_Item;
-
- List.Next := new C760012_0.List_Item;
-
- end Subtest_2;
-
- procedure Subtest_3 is
- begin
-
- C760012_0.Deallocate( List.Next );
-
- C760012_0.Deallocate( List );
-
- end Subtest_3;
-
-begin -- Main test procedure.
-
- Report.Test ("C760012", "Check that record components that have " &
- "per-object access discriminant constraints " &
- "are initialized in the order of their " &
- "component declarations, and after any " &
- "components that are not so constrained. " &
- "Check that record components that have " &
- "per-object access discriminant constraints " &
- "are finalized in the reverse order of their " &
- "component declarations, and before any " &
- "components that are not so constrained" );
-
- Subtest_1;
- TCTouch.Validate("AACDFQRSTT", "One object");
-
- Subtest_2;
- TCTouch.Validate("AACDFAACDF", "Two objects dynamically allocated");
-
- Subtest_3;
- TCTouch.Validate("QRSTTQRSTT", "Two objects deallocated");
-
- Report.Result;
-
-end C760012;