WITH REPORT; USE REPORT;
PROCEDURE C95041A IS
GLOBAL_A, GLOBAL_B : INTEGER;
GLOBAL_C, GLOBAL_D : INTEGER;
TYPE COLOR IS (RED, BLUE, YELLOW);
TYPE ARR IS ARRAY(COLOR RANGE RED .. BLUE) OF BOOLEAN;
ARRY : ARR;
TASK CHECK IS
ENTRY CHECK_LINK(ARR'RANGE)(I : INTEGER);
END CHECK;
TASK CHECK_OBJ IS
ENTRY CHECK_OBJ_LINK(ARRY'RANGE)(I : INTEGER);
END CHECK_OBJ;
TASK BODY CHECK IS
BEGIN
ACCEPT CHECK_LINK(RED)(I : INTEGER) DO
GLOBAL_A := IDENT_INT(I);
END;
ACCEPT CHECK_LINK(BLUE)(I : INTEGER) DO
GLOBAL_B := IDENT_INT(I);
END;
END CHECK;
TASK BODY CHECK_OBJ IS
BEGIN
ACCEPT CHECK_OBJ_LINK(RED)(I : INTEGER) DO
GLOBAL_C := IDENT_INT(I);
END;
ACCEPT CHECK_OBJ_LINK(BLUE)(I : INTEGER) DO
GLOBAL_D := IDENT_INT(I);
END;
END CHECK_OBJ;
BEGIN
TEST("C95041A", "CHECK THAT AN ENTRY FAMILY INDEX CAN BE " &
"SPECIFIED WITH THE FORM A'RANGE");
CHECK.CHECK_LINK(RED)(10);
CHECK.CHECK_LINK(BLUE)(5);
CHECK_OBJ.CHECK_OBJ_LINK(RED)(10);
CHECK_OBJ.CHECK_OBJ_LINK(BLUE)(5);
IF GLOBAL_A /= IDENT_INT(10) THEN
FAILED("ENTRY CHECK_LINK(RED) HAS INCORRECT VALUE");
END IF;
IF GLOBAL_B /= IDENT_INT(5) THEN
FAILED("ENTRY CHECK_LINK(BLUE) HAS INCORRECT VALUE");
END IF;
IF GLOBAL_C /= IDENT_INT(10) THEN
FAILED("ENTRY CHECK_LINK(RED) HAS INCORRECT VALUE");
END IF;
IF GLOBAL_D /= IDENT_INT(5) THEN
FAILED("ENTRY CHECK_LINK(BLUE) HAS INCORRECT VALUE");
END IF;
RESULT;
END C95041A;