aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/ada/acats/tests/c3/c380003.a
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/c3/c380003.a')
-rw-r--r--gcc/testsuite/ada/acats/tests/c3/c380003.a223
1 files changed, 0 insertions, 223 deletions
diff --git a/gcc/testsuite/ada/acats/tests/c3/c380003.a b/gcc/testsuite/ada/acats/tests/c3/c380003.a
deleted file mode 100644
index 451d177036c..00000000000
--- a/gcc/testsuite/ada/acats/tests/c3/c380003.a
+++ /dev/null
@@ -1,223 +0,0 @@
--- C380003.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 per-object expressions are evaluated as specified for
--- protected components. (Defect Report 8652/0002, as reflected in
--- Technical Corrigendum 1, RM95 3.6(22/1) and 3.8(18/1)).
---
--- CHANGE HISTORY:
--- 9 FEB 2001 PHL Initial version.
--- 29 JUN 2002 RLB Readied for release.
---
---!
-with Report;
-use Report;
-procedure C380003 is
-
- subtype Sm is Integer range 1 .. 10;
-
- type Rec (D1, D2 : Sm) is
- record
- null;
- end record;
-
-begin
- Test ("C380003",
- "Check compatibility of discriminant expressions" &
- " when the constraint depends on discriminants, " &
- "and the discriminants have defaults - protected components");
-
- declare
- protected type Cons (D3 : Integer := Ident_Int (11)) is
- function C1_D1 return Integer;
- function C1_D2 return Integer;
- private
- C1 : Rec (D3, 1);
- end Cons;
- protected body Cons is
- function C1_D1 return Integer is
- begin
- return C1.D1;
- end C1_D1;
- function C1_D2 return Integer is
- begin
- return C1.D2;
- end C1_D2;
- end Cons;
-
- function Is_Ok
- (C : Cons; D3 : Integer; C1_D1 : Integer; C1_D2 : Integer)
- return Boolean is
- begin
- return C.D3 = D3 and C.C1_D1 = C1_D1 and C.C1_D2 = C1_D2;
- end Is_Ok;
-
- begin
- begin
- declare
- X : Cons;
- begin
- Failed ("Discriminant check not performed - 1");
- if not Is_Ok (X, 1, 1, 1) then
- Comment ("Shouldn't get here");
- end if;
- end;
- exception
- when Constraint_Error =>
- null;
- when others =>
- Failed ("Unexpected exception - 1");
- end;
-
- begin
- declare
- type Acc_Cons is access Cons;
- X : Acc_Cons;
- begin
- X := new Cons;
- Failed ("Discriminant check not performed - 2");
- begin
- if not Is_Ok (X.all, 1, 1, 1) then
- Comment ("Irrelevant");
- end if;
- end;
- exception
- when Constraint_Error =>
- null;
- when others =>
- Failed ("Unexpected exception raised - 2");
- end;
- exception
- when others =>
- Failed ("Constraint checked too soon - 2");
- end;
-
- begin
- declare
- subtype Scons is Cons;
- begin
- declare
- X : Scons;
- begin
- Failed ("Discriminant check not performed - 3");
- if not Is_Ok (X, 1, 1, 1) then
- Comment ("Irrelevant");
- end if;
- end;
- exception
- when Constraint_Error =>
- null;
- when others =>
- Failed ("Unexpected exception raised - 3");
- end;
- exception
- when others =>
- Failed ("Constraint checked too soon - 3");
- end;
-
- begin
- declare
- type Arr is array (1 .. 5) of Cons;
- begin
- declare
- X : Arr;
- begin
- Failed ("Discriminant check not performed - 4");
- for I in Arr'Range loop
- if not Is_Ok (X (I), 1, 1, 1) then
- Comment ("Irrelevant");
- end if;
- end loop;
- end;
- exception
- when Constraint_Error =>
- null;
- when others =>
- Failed ("Unexpected exception raised - 4");
- end;
- exception
- when others =>
- Failed ("Constraint checked too soon - 4");
- end;
-
- begin
- declare
- type Nrec is
- record
- C1 : Cons;
- end record;
- begin
- declare
- X : Nrec;
- begin
- Failed ("Discriminant check not performed - 5");
- if not Is_Ok (X.C1, 1, 1, 1) then
- Comment ("Irrelevant");
- end if;
- end;
- exception
- when Constraint_Error =>
- null;
- when others =>
- Failed ("Unexpected exception raised - 5");
- end;
- exception
- when others =>
- Failed ("Constraint checked too soon - 5");
- end;
-
- begin
- declare
- type Drec is new Cons;
- begin
- declare
- X : Drec;
- begin
- Failed ("Discriminant check not performed - 6");
- if not Is_Ok (Cons (X), 1, 1, 1) then
- Comment ("Irrelevant");
- end if;
- end;
- exception
- when Constraint_Error =>
- null;
- when others =>
- Failed ("Unexpected exception raised - 6");
- end;
- exception
- when others =>
- Failed ("Constraint checked too soon - 6");
- end;
-
- end;
-
- Result;
-
-exception
- when others =>
- Failed ("Constraint check done too early");
- Result;
-end C380003;