> Bootstrapped/regtested x86_64-linux, comitted.

Not with Ada apparently, resulting in 

                === acats tests ===
FAIL:   c34007d
FAIL:   c34007g
FAIL:   c34007s
FAIL:   c37213j
FAIL:   c37213k
FAIL:   c37213l
FAIL:   ce2201g
FAIL:   cxa5a03
FAIL:   cxa5a04
FAIL:   cxa5a06
FAIL:   cxg2013
FAIL:   cxg2015

                === acats Summary ===
# of expected passes            2308
# of unexpected failures        12

Reduced testcase attached, compile p.adb at -O2.

-- 
Eric Botcazou
WITH Q; use Q;

PROCEDURE P IS

     SUBTYPE COMPONENT IS INTEGER;

     TYPE DESIGNATED IS ARRAY (NATURAL RANGE <>) OF COMPONENT;

     SUBTYPE SUBDESIGNATED IS DESIGNATED (IDENT_INT (5) .. IDENT_INT (7));

     TYPE PARENT IS ACCESS DESIGNATED;

     TYPE T IS NEW PARENT (IDENT_INT (5) .. IDENT_INT (7));

     X : T := NEW SUBDESIGNATED'(OTHERS => 2);

     FUNCTION IDENT (X : T) RETURN T IS
     BEGIN
          IF X = NULL OR ELSE
             EQUAL (X'LENGTH, X'LENGTH) THEN
               RETURN X;
          END IF;
          RETURN NEW SUBDESIGNATED;
     END IDENT;

BEGIN
     IF IDENT (NULL) /= NULL THEN
          raise Program_Error;
     END IF;
END;
package Q is

   FUNCTION IDENT_INT (X : INTEGER ) RETURN INTEGER; 
   FUNCTION EQUAL (X, Y : INTEGER ) RETURN BOOLEAN;

end Q;

Reply via email to