diff gcc/testsuite/ada/acats/tests/c4/c48006a.ada @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/ada/acats/tests/c4/c48006a.ada	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,96 @@
+-- C48006A.ADA
+
+--                             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.
+--*
+-- CHECK THAT AN ALLOCATOR OF THE FORM "NEW T'(X)" ALLOCATES A NEW 
+-- OBJECT EACH TIME IT IS EXECUTED AND THAT IF T IS A SCALAR OR ACCESS
+-- TYPE, THE ALLOCATED OBJECT HAS THE VALUE OF X.
+
+-- RM  01/14/80
+-- RM  01/O1/82
+-- SPS 10/27/82
+-- EG  07/05/84
+
+WITH REPORT;
+
+PROCEDURE C48006A IS
+
+     USE REPORT;
+
+BEGIN
+
+     TEST("C48006A","CHECK THAT THE FORM 'NEW T'(X)' " &
+                    "ALLOCATES A NEW OBJECT " &
+                    "AND THAT IF T IS A SCALAR OR ACCESS TYPE, THE "   &
+                    "ALLOCATED OBJECT HAS THE VALUE OF X");
+
+     DECLARE
+
+          TYPE ATA IS ACCESS INTEGER;
+          TYPE AATA IS ACCESS ATA;
+          VA1, VA2, VA3 : ATA;
+          VAA1, VAA2, VAA3 : AATA;
+
+     BEGIN
+
+          VA1 := NEW INTEGER'(5 + 7);
+          IF VA1.ALL /= IDENT_INT(12) THEN
+               FAILED("WRONG VALUES - VA1");
+          END IF;
+
+          VA2 := NEW INTEGER'(1 + 2);
+          IF (VA1.ALL /= IDENT_INT(12) OR
+              VA2.ALL /= IDENT_INT( 3)) THEN
+               FAILED("WRONG VALUES - VA2");
+          END IF;
+
+          VA3 := NEW INTEGER'(IDENT_INT(3) + IDENT_INT(4));
+          IF (VA1.ALL /= IDENT_INT(12) OR
+              VA2.ALL /= IDENT_INT( 3) OR
+              VA3.ALL /= IDENT_INT( 7)) THEN
+               FAILED("WRONG VALUES - VA3");
+          END IF;
+
+          VAA1 := NEW ATA'(NEW INTEGER'(3));
+          IF VAA1.ALL.ALL /= IDENT_INT(3) THEN
+               FAILED ("WRONG VALUES - VAA1");
+          END IF;
+
+          VAA2 := NEW ATA'(NEW INTEGER'(IDENT_INT(5)));
+          IF (VAA1.ALL.ALL /= 3 OR
+              VAA2.ALL.ALL /= 5 ) THEN
+               FAILED ("WRONG VALUES - VAA2");
+          END IF;
+
+          VAA3 := NEW ATA'(NEW INTEGER'(IDENT_INT(6)));
+          IF (VAA1.ALL.ALL /= 3 OR
+              VAA2.ALL.ALL /= 5 OR
+              VAA3.ALL.ALL /= 6 ) THEN
+               FAILED ("WRONG VALUES - VAA3");
+          END IF;
+
+     END;
+
+     RESULT;
+
+END C48006A;