This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix PR ipa/60315 (inliner explosion)
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 26 Mar 2014 22:30:55 +0100
- Subject: Re: Fix PR ipa/60315 (inliner explosion)
- Authentication-results: sourceware.org; auth=none
- References: <20140326021653 dot GA14614 at kam dot mff dot cuni dot cz>
> 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;