WITH REPORT; USE REPORT; PROCEDURE C52102B IS IDENT_INT_1 : INTEGER := IDENT_INT (1); IDENT_INT_2 : INTEGER := IDENT_INT (2); IDENT_INT_3 : INTEGER := IDENT_INT (3); IDENT_INT_4 : INTEGER := IDENT_INT (4); IDENT_INT_5 : INTEGER := IDENT_INT (5); IDENT_INT_6 : INTEGER := IDENT_INT (6); IDENT_INT_8 : INTEGER := IDENT_INT (8); IDENT_INT_9 : INTEGER := IDENT_INT (9); BEGIN DECLARE A : ARRAY( 1..IDENT_INT_4 ) OF INTEGER; BEGIN A := ( 11 , 12 , 13 , 14 ); A := ( 1 , A(IDENT_INT_1) , A(IDENT_INT_2) , A(IDENT_INT_1) ); IF A /= ( 1 , 11 , 12 , 11 ) THEN raise Program_Error; END IF; A := ( 11 , 12 , 13 , 14 ); A := ( A(IDENT_INT_4) , A(IDENT_INT_3) , A(IDENT_INT_4) , 1 ); IF A /= ( 14 , 13 , 14 , 1 ) THEN raise Program_Error; END IF; END; DECLARE TYPE ARR IS ARRAY (INTEGER RANGE <>) OF INTEGER; A : ARR (1..10); BEGIN A := ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ); A := 0 & A(IDENT_INT_1..IDENT_INT_2) & A(IDENT_INT_1..IDENT_INT_2) & A(IDENT_INT_1..IDENT_INT_5); IF A /= ( 0 , 1 , 2 , 1 , 2 , 1 , 2 , 3 , 4 , 5 ) THEN raise Program_Error; END IF; A := ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ); A := A(IDENT_INT_6..IDENT_INT_9) & A(IDENT_INT_8..IDENT_INT_9) & A(IDENT_INT_8..IDENT_INT_9) & 0 & 0; IF A /= ( 6 , 7 , 8 , 9 , 8 , 9 , 8 , 9 , 0 , 0 ) THEN raise Program_Error; END IF; END; END C52102B;