WITH REPORT; USE REPORT;
WITH UNCHECKED_DEALLOCATION;
PROCEDURE ADA101A IS
TYPE ENUM IS (CURLY, MOE, LARRY);
TYPE DER IS NEW INTEGER;
SUBTYPE SUB IS CHARACTER RANGE 'A'..'Z';
TASK TYPE TSK;
TYPE ACC IS ACCESS INTEGER;
PACKAGE P IS
TYPE PRIV IS PRIVATE;
PRIVATE
TYPE PRIV IS RANGE -100..100;
END P;
USE P;
TYPE ARR1 IS ARRAY (INTEGER RANGE 1..10) OF INTEGER;
TYPE ARR2 IS ARRAY (INTEGER RANGE <>) OF CHARACTER;
TYPE REC1 IS RECORD
D, I : INTEGER;
END RECORD;
TYPE REC2 (D : INTEGER) IS RECORD
C : CHARACTER;
END RECORD;
TYPE INTEGERA IS ACCESS INTEGER;
TYPE FLOATA IS ACCESS FLOAT;
TYPE ENUMA IS ACCESS ENUM;
TYPE BOOLEANA IS ACCESS BOOLEAN;
TYPE CHARACTERA IS ACCESS CHARACTER;
TYPE DERA IS ACCESS DER;
TYPE SUBA IS ACCESS SUB;
TYPE TSKA IS ACCESS TSK;
TYPE ACCA IS ACCESS ACC;
TYPE PRIVA IS ACCESS PRIV;
TYPE ARR1A IS ACCESS ARR1;
TYPE ARR2A IS ACCESS ARR2;
TYPE REC1A IS ACCESS REC1;
TYPE REC2A IS ACCESS REC2;
TASK BODY TSK IS
BEGIN
NULL;
END TSK;
PROCEDURE RLSI IS NEW UNCHECKED_DEALLOCATION(INTEGER, INTEGERA);
PROCEDURE RLSF IS NEW UNCHECKED_DEALLOCATION(FLOAT, FLOATA);
PROCEDURE RLSE IS NEW UNCHECKED_DEALLOCATION(ENUM, ENUMA);
PROCEDURE RLSB IS NEW UNCHECKED_DEALLOCATION(BOOLEAN, BOOLEANA);
PROCEDURE RLSC IS NEW UNCHECKED_DEALLOCATION(CHARACTER,CHARACTERA);
PROCEDURE RLSD IS NEW UNCHECKED_DEALLOCATION(DER, DERA);
PROCEDURE RLSS IS NEW UNCHECKED_DEALLOCATION(SUB, SUBA);
PROCEDURE RLST IS NEW UNCHECKED_DEALLOCATION(TSK, TSKA);
PROCEDURE RLSA IS NEW UNCHECKED_DEALLOCATION(ACC, ACCA);
PROCEDURE RLSP IS NEW UNCHECKED_DEALLOCATION(PRIV, PRIVA);
PROCEDURE RLSA1 IS NEW UNCHECKED_DEALLOCATION(ARR1, ARR1A);
PROCEDURE RLSA2 IS NEW UNCHECKED_DEALLOCATION(ARR2, ARR2A);
PROCEDURE RLSR1 IS NEW UNCHECKED_DEALLOCATION(REC1, REC1A);
PROCEDURE RLSR2 IS NEW UNCHECKED_DEALLOCATION(REC2, REC2A);
BEGIN
TEST ("ADA101A", "CHECK THAT UNCHECKED_DEALLOCATION CAN BE " &
"INSTANTIATED WITH ANY TYPE AS THE OBJECT " &
"PARAMETER");
RESULT;
END ADA101A;