------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-14 
04:27 -------
This is the smallest testcase I can get it:
WITH REPORT; USE REPORT;
PROCEDURE C37213J IS
BEGIN
     DECLARE
          SUBTYPE SM IS INTEGER RANGE 1..10;
          TYPE REC (D1, D2 : SM) IS
               RECORD NULL; END RECORD;
          TYPE MY_ARR IS ARRAY (SM RANGE <>) OF INTEGER;
          GENERIC TYPE CONS IS PRIVATE;
          PROCEDURE SUBTYP_CHK (OBJ_XCP : BOOLEAN;
                                TAG     : STRING);
          PROCEDURE SUBTYP_CHK (OBJ_XCP : BOOLEAN;
                                TAG     : STRING)    IS
            SUBTYPE SCONS IS CONS;
             X : SCONS;
             FUNCTION VALUE RETURN SCONS IS
             BEGIN
                 RETURN X;
             END VALUE;
          BEGIN
             IF X /= VALUE THEN
                  FAILED ("");
             END IF;
          END SUBTYP_CHK;
         TYPE VAR_REC_DEF1 (D3 : INTEGER := 1) IS
              RECORD
                   CASE D3 IS
                        WHEN 1 =>
                             C1 : REC (D3, IDENT_INT(11));
                        WHEN OTHERS =>
                             C2 : INTEGER := IDENT_INT(5);
                   END CASE;
              END RECORD;
         PROCEDURE PROC3 IS NEW SUBTYP_CHK (VAR_REC_DEF1);
     BEGIN
       PROC3 (OBJ_XCP => TRUE, TAG => "PROC3");
     END;
END C37213J;


Note the use of case.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22019

Reply via email to